6

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

两者都将全屏显示。

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

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

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

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

4

1 回答 1

8

如果您希望 ComposeMessageUi 阻止主窗口,请使用

void setModal(true);

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

void setWindowModality(Qt::ApplicationModal);

(请参阅替代模态模式的文档)

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

void QWidget::raise();
于 2013-08-02T08:51:18.110 回答