connect 后,能否临时时禁止发信号?

Jonix 2013-03-05 10:35:17
我已经对某个控件进行了 connect , 绑定到一个槽上。

但是我现在需要对这个控件进行写操作,在这个过程中,我不希望它发信号。

等我写完操作后再发信号,这时有没有什么简单的方法 disabled / enabled 一下呢?

还是一定要 disconnect 后,重新 connect ?
...全文
368 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
雲天之巔 2013-03-10
  • 打赏
  • 举报
回复
引用 6 楼 wopabe 的回复:
引用 5 楼 heksn 的回复:ui->lineEdit->blockSignals(true); ui->lineEdit->setText("dddd"); ui->lineEdit->blockSignals(false); 楼上正解,使用blockSignals设置
学习了。
wopabe 2013-03-06
  • 打赏
  • 举报
回复
引用 5 楼 heksn 的回复:
ui->lineEdit->blockSignals(true); ui->lineEdit->setText("dddd"); ui->lineEdit->blockSignals(false);
楼上正解,使用blockSignals设置
雲天之巔 2013-03-05
  • 打赏
  • 举报
回复
貌似只能这样了:要 disconnect 后,重新 connect 这样和你说的disabled / enabled 也没差吧 效果差不多吧
SilenceSu 2013-03-05
  • 打赏
  • 举报
回复
disconnect
  • 打赏
  • 举报
回复
ui->lineEdit->blockSignals(true); ui->lineEdit->setText("dddd"); ui->lineEdit->blockSignals(false);
jdwx 2013-03-05
  • 打赏
  • 举报
回复
试试这个:bool QObject::blockSignals ( bool block )
Jonix 2013-03-05
  • 打赏
  • 举报
回复
引用 2 楼 qq214517703 的回复:
貌似只能这样了:要 disconnect 后,重新 connect 这样和你说的disabled / enabled 也没差吧 效果差不多吧
如果一个信号对应很多槽,岂不是很麻烦 ...

16,216

社区成员

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

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