我的 Qt 应用程序的主窗口是一个普通的QMainWindow
子类。在那个窗口中,我有几个按钮;每个都有自己的clicked
信号连接到自己的插槽,每个插槽都会创建一个不同的插槽,QDialog
如下所示:
void onButtonA_clicked()
{
MyADialog* dialog = new MyADialog(this);
dialog->exec();
delete dialog;
}
我一直在阅读这篇文章:https ://wiki.qt.io/Threads_Events_QObjects#Events_and_the_event_loop ,作者说
你永远不应该阻塞事件循环
这让我很担心;exec
是一个阻塞函数,所以根据他所说的(他的例子Worker::doWork
做了很多工作并且需要一些时间来完成)我的代码阻塞了事件循环,但我没有注意到任何暗示这一点的东西;相反,主窗口似乎表现正常,当我更改代码以使用该show()
方法时没有任何区别。
我阻止了事件循环吗?我应该在这里使用不同的方法吗?