【发布时间】:2011-08-20 01:31:36
【问题描述】:
当对话框的accept() 插槽被调用时,我应该如何最好地强制 QDialog 保持打开状态?我正在考虑重新实现该函数以使对话框的 exec 返回而不隐藏对话框,但想知道是否有更好的方法来实现这一点。
【问题讨论】:
当对话框的accept() 插槽被调用时,我应该如何最好地强制 QDialog 保持打开状态?我正在考虑重新实现该函数以使对话框的 exec 返回而不隐藏对话框,但想知道是否有更好的方法来实现这一点。
【问题讨论】:
我不会使用 QDialog,而是使用 QDockWidget 来完成效果。
参考文献
【讨论】:
exec()。当用户在QDockWidget 中输入一些值时,如何让主线程等待?
exec。我想我最好的选择是重构,这样就不会出现这种情况了?
您需要通过调用show 而不是exec 并使用自定义信号而不是accept 使QDialog 无模式,因为accept 会关闭窗口。然后使用exec 调用后的代码将该信号连接到主窗口中的插槽。
如果不是这样,您应该在某处保留指向 QDialog 的引用/指针(作为主窗口类中的成员,或打开它的函数中的静态变量),以便能够避免创建对话框的多个实例,并且您需要确保只连接信号/插槽一次。
【讨论】: