【问题标题】:How to redefine Z-Order in Qt Widget如何在 Qt Widget 中重新定义 Z-Order
【发布时间】:2013-08-02 08:37:36
【问题描述】:

我有两个 Widget 有单独的实现。他们是...
MessageInboxUi
ComposeMessageUi

两者都将全屏显示。

在主窗口中,我按以下顺序添加两个小部件

ComposeMessageUi* ptrEditor = new ComposeMessageUi(this); // these are inside 
MessageInboxUi * ptrInbox = new MessageInboxUi(this);     // MainWindow Constructor

所以当我在 MessageInboxUi 显示时调用 ComposeMessageUi 的 show 函数时,它不显示(因为它显示在 MessageInboxUi 后面)。

我怎样才能让 ComposeMessageUi 放在前面(我的意思是,我怎样才能重新定义它们的 z 顺序)

【问题讨论】:

标签: c++ qt user-interface


【解决方案1】:

如果您希望 ComposeMessageUi 阻止主窗口,请设置模式标志

void setModal(true);

如果您的代码不是从 QDialog 派生的,您最终需要使用

void setWindowModality(Qt::ApplicationModal);

(请参阅alternative modality modes 的文档)

要将窗口放在前面,您可以使用:

void QWidget::raise();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 2013-10-26
    • 2010-10-23
    • 1970-01-01
    • 2014-01-17
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多