QT5信号与槽

whppmy 2017-12-01 08:44:44
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
如果我想用计时器刷新界面,QT4的写法,这样没有问题,QT5的信号槽怎么写?
有没有这方面的资料,重载的已经知道了
...全文
506 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
由于新的信号槽使用了functional ,机制不同了。我已经在Qt 论坛发起了提问! https://forum.qt.io/topic/85790/how-to-match-different-paras-for-signal-and-slots-using-new-functional-style-connect
whppmy 2017-12-05
  • 打赏
  • 举报
回复
引用 7 楼 dayu_cn 的回复:
定时器去刷新界面?还不如直接定时器调用update,其实4和5没什么区别,新功能为支持lanbada表达式
这种办法当然没问题 我就想知道怎么实现5的写法 出了5以后 4不保证每个版本都会支持 我是这样想的
whppmy 2017-12-05
  • 打赏
  • 举报
回复
引用 6 楼 goldenhawking 的回复:
Qt5 既可以用老的 SIGNAL宏,也可以用新的C++11 functional 绑定。很灵活。 但是,在一个情况下不好弄,就是重载的信号/槽名称。 比如: public slos: void on_finished(); void on_finished(int reason); 这样用老的,以便给齐参数。 不过,建议槽不要搞这种重载。
信号重载还有办法解决 就是现在 信号和槽都不是自己定义的 如上面的timeout和update 他们之间不知道怎么匹对上的
  • 打赏
  • 举报
回复
定时器去刷新界面?还不如直接定时器调用update,其实4和5没什么区别,新功能为支持lanbada表达式
  • 打赏
  • 举报
回复
Qt5 既可以用老的 SIGNAL宏,也可以用新的C++11 functional 绑定。很灵活。 但是,在一个情况下不好弄,就是重载的信号/槽名称。 比如: public slos: void on_finished(); void on_finished(int reason); 这样用老的,以便给齐参数。 不过,建议槽不要搞这种重载。
习惯就好zz 2017-12-01
  • 打赏
  • 举报
回复
引用 4 楼 A852852852852 的回复:
引用 1 楼 ch122633 的回复:
《qtcreator快速入门》第三版里看到过
这本书有,但是在宿舍,大概在第几章,我印象中没有泛泛的看了一遍。。。
就是讲信号和嘈的那部分,里面有新的机制,可以对信号和槽的指针提前检测。
whppmy 2017-12-01
  • 打赏
  • 举报
回复
引用 1 楼 ch122633 的回复:
《qtcreator快速入门》第三版里看到过
这本书有,但是在宿舍,大概在第几章,我印象中没有泛泛的看了一遍。。。
whppmy 2017-12-01
  • 打赏
  • 举报
回复
引用 2 楼 Liuzwang 的回复:
楼主,我在QT5.9.2里面可以使用你的信号,槽函数啊。楼主你那边出现什么问题了吗?
这是QT4的写法 我想问QT5的写法要怎样写 出于好奇 connect(sender, &Sender::valueChanged,receiver, &Receiver::updateValue ); 类似这种
Liuzwang 2017-12-01
  • 打赏
  • 举报
回复
楼主,我在QT5.9.2里面可以使用你的信号,槽函数啊。楼主你那边出现什么问题了吗?
习惯就好zz 2017-12-01
  • 打赏
  • 举报
回复
《qtcreator快速入门》第三版里看到过

16,225

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧