• 6014阅读
  • 4回复

[提问]请问Qt如何现实程序悬停 [复制链接]

上一主题 下一主题
离线xyqlgpp
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-09
问题描述:
假设有一个Qdialog,上面有三个按钮,假设就是btn1,btn2,btn3。
有一段代码,假设就是A.cpp里面的函数void b();
现在需要实现这样一个功能:当运行到b()函数的时候,程序堵塞5秒,等待用户按下三个按钮的其中一个。如果在这5秒内用户按下了,那么返回用户按下了哪个按钮,程序停止堵塞继续运行。如果5秒过去了,返回用户并没有按下按钮,程序停止堵塞继续运行。

这样的功能大致应该怎样实现呢?
离线wxj120bw

只看该作者 1楼 发表于: 2011-04-09
引用楼主xyqlgpp于2011-04-09 18:03发表的 请问Qt如何现实程序悬停 :
问题描述:
假设有一个Qdialog,上面有三个按钮,假设就是btn1,btn2,btn3。
有一段代码,假设就是A.cpp里面的函数void b();
现在需要实现这样一个功能:当运行到b()函数的时候,程序堵塞5秒,等待用户按下三个按钮的其中一个。如果在这5秒内用户按下了,那么返回用户按下了哪个按钮,程序停止堵塞继续运行。如果5秒过去了,返回用户并没有按下按钮,程序停止堵塞继续运行。
.......

在b函数中用while实现堵赛等待5秒。
离线dbzhang800

只看该作者 2楼 发表于: 2011-04-09
引用楼主xyqlgpp于2011-04-09 18:03发表的 请问Qt如何现实程序悬停 :
问题描述:
假设有一个Qdialog,上面有三个按钮,假设就是btn1,btn2,btn3。
有一段代码,假设就是A.cpp里面的函数void b();
现在需要实现这样一个功能:当运行到b()函数的时候,程序堵塞5秒,等待用户按下三个按钮的其中一个。如果在这5秒内用户按下了,那么返回用户按下了哪个按钮,程序停止堵塞继续运行。如果5秒过去了,返回用户并没有按下按钮,程序停止堵塞继续运行。
.......

我想我看懂你的意思了,你是想让程序执行时停在某个位置,而界面保持相应。不过你的标题取的不好,让人误认为其他东西。

这个东西非常容易实现,也很简单。
你只需要一个QEventLoop对象,在想暂停的位置调用它的 exec,在想继续的地方调用它的quit即可。

可以看看我前两天整理的这个:
http://blog.csdn.net/dbzhang800/archive/2011/04/03/6300519.aspx
离线xyqlgpp
只看该作者 3楼 发表于: 2011-04-09
回 2楼(dbzhang800) 的帖子
解决了,谢谢。
离线wxj120bw

只看该作者 4楼 发表于: 2011-04-10
引用第2楼dbzhang800于2011-04-09 19:06发表的  :
我想我看懂你的意思了,你是想让程序执行时停在某个位置,而界面保持相应。不过你的标题取的不好,让人误认为其他东西。
这个东西非常容易实现,也很简单。
你只需要一个QEventLoop对象,在想暂停的位置调用它的 exec,在想继续的地方调用它的quit即可。
.......

写的很不错
快速回复
限100 字节
 
上一个 下一个