【问题标题】:Raise modal QDialog when user tries to activate MainWindow当用户尝试激活 MainWindow 时引发模态 QDialog
【发布时间】:2014-08-13 07:15:18
【问题描述】:

我们有一个 QMainWindow 包含几个 QDialogs,这些 QDialogs 使用 exec() 打开,因此是模态的(这是所需的行为)。

现在,当用户打开这些对话框之一时,选择与一些与对话框重叠但不与 MainWindow 重叠的外部程序(例如 webbrowser)进行交互,然后尝试返回我们的程序,他无法由于模态对话框,通过单击主窗口的可见区域。为了返回,他需要移动/最小化阻碍 QDialog 视图的其他窗口或使用任务栏激活它。这可能会给人留下程序被冻结的印象(特别是如果已经过了一段时间并且用户不知道打开的对话框)。

在这种情况下,我在主窗口/对话框中重载了各种焦点/鼠标事件以 raise() QDialog,但是在显示对话框时单击主窗口时我找不到一个被激活的事件。有人知道解决方案吗?我认为到目前为止我一定忽略了一些简单的事情。

【问题讨论】:

    标签: c++ qt modal-dialog qt4.6


    【解决方案1】:

    确保 QDialogs 在构造函数中获得正确的父窗口(主窗口)。 这应该可以解决问题。

    【讨论】:

    • 我知道这很简单。非常感谢!
    猜你喜欢
    • 2021-05-08
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多