1

accept()当对话框的插槽被调用时,我应该如何最好地强制 QDialog 保持打开状态?我正在考虑重新实现该函数以使对话框的 exec 返回而不隐藏对话框,但想知道是否有更好的方法来实现这一点。

4

2 回答 2

2

我不会使用 QDialog,而是使用 QDockWidget 来完成效果。

  • 移除允许移动dock的特性(QDockWidget::DockWidgetMovable)
  • 将停靠小部件设置为浮动 (setFloating(true))
  • 将停靠小部件上的项目连接到主窗口上的相应信号和插槽

参考

于 2011-08-20T17:55:48.600 回答
2

您需要QDialog通过调用show而不是exec,并使用自定义信号而不是来使您的无模式accept,因为accept关闭窗口。exec然后使用调用后的代码将该信号连接到主窗口中的插槽。

如果不是这样,您应该在某处保留指向 QDialog 的引用/指针(作为主窗口类中的成员,或打开它的函数中的静态变量)以避免创建多个对话框的实例,您需要确保只连接信号/插槽一次。

于 2011-08-22T10:21:34.560 回答