我有两个具有单独实现的小部件。他们是 ...
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/