找回密码
 立即注册
收起左侧

QT使程序暂停

3
回复
8808
查看
[复制链接]
累计签到:14 天
连续签到:1 天
来源: 2017-11-12 19:54:09 显示全部楼层 |阅读模式
1Qter豆
一个小项目,没那么复杂实现。控制一个蝴蝶飞来飞去,就这么简单。
三个按钮,【开始】,【暂停/继续】,【重设归位】。
【开始】后,蝴蝶随机地飞,现在【暂停】,蝴蝶就应该停在原位,任何动作停止,等待【暂停/继续】的信号。
我的问题就发生在【暂停】触发信号,进而使蝴蝶停在原位静止的时候,这个静止怎么写。
我的思路就是设置一个变量,如果触发的是【暂停】,就设为true,那么程序逻辑控制蝴蝶的那段代码中会检测这个变量是否为true,如果是,就让控制飞舞的这段代码暂停在这里(有while嘛,就是让while暂停),直到它为假,那这个程序暂停怎么实现呢?
我百度了下,方法很多。但感觉QT肯定已经有考虑到这方面的需求,但百度的答案的代码冗长,终于找到一个QTest::qWait。但好像说QTest这个类尽量不要用。所以,额,各位大佬,你们工作中,遇到需要(while语句)暂停的时候怎么写,越精简越好(这么强大的qt,怎么没有一句代码就可以解决这事呢,很好奇)

最佳答案

查看完整内容

QTimer控制动作,暂停 stop该QTimer就行了
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-11-12 19:54:10 显示全部楼层
QTimer控制动作,暂停 stop该QTimer就行了
回复

使用道具 举报

尚未签到

2017-11-13 00:52:55 显示全部楼层
感觉你原本的思路有点问题,蝴蝶本身的动作应该封装好,发生动作应该留出接口,暂停后也仅仅是不触发这个接口就行了。
回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2017-11-14 13:49:48 显示全部楼层
同意二楼的话,此外如果你要解决这个问题,可以尝试使用QTimer和processEvents()的组合
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了