• 8601阅读
  • 14回复

如何监听一个int变量,如果变量值改变的话,相应的界面显示也改变? [复制链接]

上一主题 下一主题
离线kafeikejian
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-06
— 本帖被 XChinux 执行加亮操作(2009-08-07) —
如题,谢谢!
离线duduqq

只看该作者 1楼 发表于: 2009-08-06
不知你所说的“监听一个int变量”是什么意思
离线kafeikejian

只看该作者 2楼 发表于: 2009-08-06
就是如果这个变量的值在运用的时候改变了,那么实时的界面也改变了,好像JAVA中有addObserver这种方法吧!
离线jorneyr

只看该作者 3楼 发表于: 2009-08-06
自己写一个setter方法, 在这个方法里, 当它的值改变时,发射信号。
离线john123
只看该作者 4楼 发表于: 2009-08-07
用QThread也可,在run()寫判斷,發生變化,就去做該做的事
离线kafeikejian

只看该作者 5楼 发表于: 2009-08-07
哦,我是用个定时器去写,到一定时间去检测下。这样做不知怎么样。。
离线robertkun

只看该作者 6楼 发表于: 2009-08-07
引用第5楼kafeikejian于2009-08-07 10:18发表的  :
哦,我是用个定时器去写,到一定时间去检测下。这样做不知怎么样。。


这样局限性大了点,必须在指定的时间 内变化一次。。
                                              简单的生活使人快乐!
离线cspp

只看该作者 7楼 发表于: 2009-08-07
你怎么知道那个int值变化了?
肯定得通知你的程序吧?
离线kafeikejian

只看该作者 8楼 发表于: 2009-08-07
就是怎么通知程序啊?
离线@xiaoyu@
只看该作者 9楼 发表于: 2009-08-07
看看下面这个语句,能不能有什么启发:
QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
我用过实现你描述的类似功能
相当个性,不用签名
离线浪漫天使
只看该作者 10楼 发表于: 2009-08-07
射个带参数的信号出去
离线channon
只看该作者 11楼 发表于: 2009-08-07
改变int变量的时候不要直接修改,而是使用setVer(int x)方法。

在该方法中修改int变量,并修改界面
操作系统: Archlinux
Qt SDK: Qt 4.7.1 for Linux
开发方向: Qt,Java
常用数据库:Firebird、SQLite
离线kafeikejian

只看该作者 12楼 发表于: 2009-08-07
引用第11楼channon于2009-08-07 13:55发表的  :
改变int变量的时候不要直接修改,而是使用setVer(int x)方法。
在该方法中修改int变量,并修改界面

这样做很不好吧,如果我是要在程序的很多地方都要修改到这个参数,难不成我所有地方都给加段界面改变的程序?
离线channon
只看该作者 13楼 发表于: 2009-08-07
我无语了。

写个方法
void setVer(int x){
yourint=x;
界面调整的代码
}

将你所有要yourint=xxx;的地方改为setVer(xxx);
操作系统: Archlinux
Qt SDK: Qt 4.7.1 for Linux
开发方向: Qt,Java
常用数据库:Firebird、SQLite
离线foxyz

只看该作者 14楼 发表于: 2009-08-07
Qt里边都是封装好数据,在数据改变的同时emit signal
快速回复
限100 字节
 
上一个 下一个