Qt编程求助:有没有啥类似QDialog::exec()之类的能阻塞程序的方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt编程求助:有没有啥类似QDialog::exec()之类的能阻塞程序的方法?相关的知识,希望对你有一定的参考价值。
我的程序的底层算法执行到某一步时,需要等待用户输入数据,就是C++里要用cin的那些情况,
在Qt里
我可以设计一个用于输入的QDialog,然后在底层算法代码中调用QDialog::exec(),就会弹出一个QDialog,QDialog返回accepted或rejected之后QDialog::exec()才会退出。期间能阻塞用户与父窗口的交互,直到对话框关闭。
但问题是,我不想弹出一个QDialog,而是想在主窗口中处理,我想让用户在程序的主窗口中输入,然后点击一个QPushButton提交,有没有什么类似QDialog::exec()之类的能够阻塞程序,直到某个信号被发出,后才返回的函数?
也就是说,有没有什么办法弄一个模态QWidget,调用它的某些接口就可以阻塞程序运行,直到QWidget内部发出什么信号才继续程序?
望高手们赐教!
Hack一下,照着dialog的方式做个消息循环。嵌套层数算好就行
另外,主窗口中显示,处理单开线程,做同步或者信号量等实现阻塞 参考技术A 你可以在widget中设置一个参数就可以了,如下
QWidgt *widget=new QWidget(0);
widget->setWindowModality(Qt::ApplicationModal);
以上是关于Qt编程求助:有没有啥类似QDialog::exec()之类的能阻塞程序的方法?的主要内容,如果未能解决你的问题,请参考以下文章
100分求助,Qt继承自QGraphicsItem的控件响应不了mousePressEvent事件怎么办?
Qt编程 treeWidge->findItems (),只能找到根节点,子节点找不到,怎么解决?或者用啥方法找到子节点?
求助,在VS2013环境里搭载QT老是出现模块计算机类型“X86”与目标计算机类型“x64”冲突