我有两个具有单独实现的小部件。他们是 ...
MessageInboxUi
ComposeMessageUi

两者都将以全屏显示。

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

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

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

如何使ComposeMessageUi放在最前面(我的意思是,如何重新定义其z顺序)

最佳答案

如果要让ComposeMessageUi阻止主窗口,请使用以下方式设置模式标志

void setModal(true);

如果您的代码不是从QDialog派生的,则最终需要使用
void setWindowModality(Qt::ApplicationModal);

(请参阅alternative modality modes的文档)

要将窗口置于最前面,可以使用:
void QWidget::raise();

关于c++ - 如何在Qt小部件中重新定义Z顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18012344/

10-11 19:45
查看更多