Qt QDialog弹出另一个QDialog

Qt QDialog弹出另一个QDialog,qt,touchscreen,qdialog,qeventloop,Qt,Touchscreen,Qdialog,Qeventloop,我有一个子类QDialog,包含一堆子类QSpinBox。单击旋转框时,会出现一个小键盘(另一个QDialog),您可以在其中使用按钮输入数字。两个QDialog都通过调用QDialog::exec()激活 但是,当打开第二个QDialog时,第一个QDialog将关闭。我已经走过它,注意到第一次对话还没有结束。完成QDialog 2后,QDialog 1发出“QDialog::Rejected”。我希望QDialog 1不结束,它需要用输入的值更新spinbox,并为用户稍后要编辑的其他spi

我有一个子类QDialog,包含一堆子类QSpinBox。单击旋转框时,会出现一个小键盘(另一个QDialog),您可以在其中使用按钮输入数字。两个QDialog都通过调用QDialog::exec()激活

但是,当打开第二个QDialog时,第一个QDialog将关闭。我已经走过它,注意到第一次对话还没有结束。完成QDialog 2后,QDialog 1发出“QDialog::Rejected”。我希望QDialog 1不结束,它需要用输入的值更新spinbox,并为用户稍后要编辑的其他spinbox打开更多QDialog


我认为这与QDialog 1的eventloop被QDialog 2的eventloop杀死有关。我已经尝试在QDialog 2上使用QDialog::show。小部件会弹出片刻(毫秒),但不会保持活动状态。QDialog 1也会立即关闭。

按照您口头描述代码的方式,您不应该看到您描述的问题。在没有看到您的实际代码的情况下,我无法冒险猜测是什么导致了问题。但是,我可以肯定地说,我已经在对话框A上运行了
exec()
,然后在对话框B上运行了
exec()
(从一个按钮),当对话框B退出时,对话框A保持可用。

QDialog 1设置为Qt::Popup,默认情况下QDialog 2设置为Qt::dialog。一个弹出窗口关闭一系列事件。我还将QDialog 2的标志设置为Qt::Popup,这似乎不再关闭QDialog 1。

谢谢,关于eventloops的部分确实是一条死胡同。