社区
Qt
帖子详情
用信号槽的方式修改while循环等待的值可不可以?
youthdou
2014-12-15 10:03:51
QTimer pn532_timer;
pn532_timer->start(20);
while(pn532_response_status == PN532_RESPONSE_INIT);
timer的槽里面修改pn532_response_status的值,这样的实现是不是有问题?
...全文
157
4
打赏
收藏
用信号槽的方式修改while循环等待的值可不可以?
QTimer pn532_timer; pn532_timer->start(20); while(pn532_response_status == PN532_RESPONSE_INIT); timer的槽里面修改pn532_response_status的值,这样的实现是不是有问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyq5945
2014-12-16
打赏
举报
回复
改成这样就可以了。 while(pn532_response_status == PN532_RESPONSE_INIT) { QCoreApplication::processEvents(); }
youthdou
2014-12-15
打赏
举报
回复
信号不是应该异步产生的?
dbzhang800
2014-12-15
打赏
举报
回复
当然,有了这个while语句,你的信号根本不可能产生,更不用说槽函数了。
astro_lee
2014-12-15
打赏
举报
回复
timer事件是消息循环驱动的,函数不返回,执行流程就无法返回事件循环,也就无法取出超时这个事件,更不会触发timeout这个信号。所以你应该把判断放在“timer的槽"里面。
qt子线程中存在while死循环时,同时响应QTimer定时器
如果存在QTimer,则应通过子线程中的started
信号
绑定对象中的
槽
函数,来初始化QTimer,保证QTimer的创建是在子线程中,这样Qtimer的timeout
信号
才能触发对应的
槽
函数。因为QTimer的超时触发,当到达指定的时间时,就会往Qtimer对象所在线程的事件循环中发送一个timeout事件,从而触发
槽
函数。但是如果在开启子线程后,对应的
槽
函数是一个死循环时 While(1)...... 这时候就要注意了,由于子线程一旦开始,就会一直在死循环中运行。执行来保证其他
信号
及事件的运行。
Qt跨线程
信号
槽
槽
函数无响应(未调用)问题
最近在开发中遇到一个很奇怪的问题 ,
槽
函数与
信号
连接后,在代码执行中发出
信号
,
槽
函数始终进不去。一开始认为是connect调用传参不对,打了下返回
值
是true,而且在输出中也没有相关warnning输出。再一看跨线程
信号
槽
调用,所以猜测跟多线程有关。排查过程中各种换
信号
、改参数都没有效果,偶然间把接收对象的创建移至主线程,
槽
函数居然执行成功了。本着有问题看手册的原则,在手册中找到了如下的说明: 大体意识是说:Qobject对象是有线程归属的,或者说其存活在特定线程中。当接收到队列连接的信或 投递的事件,
槽
【深入QT】
信号
槽
机制浅析
一、
信号
槽
的基本概念 关于QT
信号
槽
的基本概念大家都懂,通过
信号
槽
机制,QT使对象间的通信变得非常简单: A对象声明
信号
(signal),B对象实现与之参数相匹配的
槽
(slot),通过调用connect进行连接,合适的时机A对象使用emit把
信号
带上参数发射出去,B对象的
槽
会就接收到响应。
信号
槽
机制有一些特点: 1. 类型安全:只有参数匹配的
信号
与
槽
才可以连接成功(
信号
的参数可
QT
信号
和
槽
连接
方式
小结
QT
信号
和
槽
qt
信号
和
槽
的连接
方式
qt
信号
和
槽
的连接
方式
分为具体分五种,在手册中查看了Qt::ConnectionType的枚举类型结果如下。 Qt::AutoConnection 0 (默认)如果
信号
的发送和接收方在相同线程的情况下,使用Qt::DirectConnection。否则,使用Qt::QueuedConnection。在发出
信号
时确定连接类型。 Qt::DirectConnection 1 当发出
信号
时,
槽
函数立即被调用。
槽
在发送
信号
的线程中执行。 Q
Qt:
信号
与
槽
机制
一、
信号
和
槽
机制是什么? 1 Qt
信号
槽
机制:是Qt的核心机制,它是Qt定义的一种对象间的通讯机制,且独立于标准C/C++语言。 2
信号
(signals):当某个类对象发生内部改变时,发射“
信号
”随后与关联的“
槽
函数”被立即执行,“
信号
槽
机制”完全独立于任何GUI事件循环机制 (1)
信号
可以链接普通函数 (2)如果存在一个
信号
对应多个
槽
函数,则
槽
函数调用顺序与connect顺序相同 3
槽
...
Qt
16,213
社区成员
26,593
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章