qt5中的全屏模式问题

时间:2013-10-18 05:29:57

标签: qt

我在qml中有一个应用程序。我正在使用quickview并将其设置为全屏。但是当我尝试从全屏模式打开.ui文件(QWidget)时,它将在主窗口后面。当我不处于全屏模式时,这不会发生。我试过设置标志(Qt :: WindowStaysOnTopHint),但它不起作用。我正在使用QT5。谢谢你的帮助

 QUiLoader loader;
 QFile file("abc.ui");
 file.open(QFile::ReadOnly);
 QWidget * _parent = loader.load(&file);
 file.close();
 _parent->setParent(mainlayout);
 _parent->setWindowFlags(Qt::Tool);
 _parent->setWindowFlags(_parent->windowFlags() | Qt::WindowStaysOnTopHint)

在这里,mainlayout是quickview

1 个答案:

答案 0 :(得分:0)

Qt中的窗口小部件育儿行为在QDialogQWidget之间有所不同。 QDialog始终是顶级窗口小部件(窗口)。我猜你的.ui文件创建的对象不是QDialog。请确保它是:

QWidget * _parent = loader.load(&file);
Q_ASSERT(qobject_cast<QDialog*>(_parent));

如果此断言失败,则需要将.ui文件的基类更改为对话框。

您可能还应该激活并提升对话框:

_parent->activateWindow();
_parent->raise();