当前位置:编程学习 > wap >>

QTimer响应的槽函数如何传形参

QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);
这里面我想响应的槽函数如何传形参,我只想程序其中一小段绘画函数不断刷新,需要传入数据,求大神帮忙。 --------------------编程问答-------------------- 数据以成员变量的方式存储,在槽函数中直接访问成员变量就行了,不需要作为参数传递 --------------------编程问答-------------------- 但是这个不可能全变为成员变量,我想重复调用的部分在一个函数的中间,需要用到这个函数算出来的值。难道QT只能变为成员变量槽函数才可以用么? --------------------编程问答-------------------- 解说无力……

--------------------编程问答-------------------- 这么直接的说吧。timeout()信号是QTimer 自带的信号,而这个信号没有参数,你就永远无法 通过这个信号给你的槽函数传值。你想传值,那就自己写一个timer,再自定义一个带参数的信号吧 --------------------编程问答-------------------- 在update()里调用真正完成某个功能的函数(以前想当作槽的) --------------------编程问答--------------------
引用 4 楼 hai200501019 的回复:
这么直接的说吧。timeout()信号是QTimer 自带的信号,而这个信号没有参数,你就永远无法 通过这个信号给你的槽函数传值。你想传值,那就自己写一个timer,再自定义一个带参数的信号吧

好的,只能这样了,感谢! --------------------编程问答-------------------- 既然是timer,何不用TimerEvent来处理相关的传值异步处理呢?不用tmeout signal就是了 --------------------编程问答--------------------
引用 7 楼 foxyz 的回复:
既然是timer,何不用TimerEvent来处理相关的传值异步处理呢?不用tmeout signal就是了

能具体举个例子么,谢 --------------------编程问答-------------------- 把你要传的数据放在一个event里,你的event就从QEvent继承,,然后post你的event给目标对象 --------------------编程问答-------------------- 最近我也遇到这个问题了啊,求大神解答。。。 --------------------编程问答-------------------- 其实很简单,QTimer的基类是QObject.

timer->setProperty("property1", "helo")

void update()
{
     QString helo = sender()->property("property1").toString();
}
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,