首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浮动子QMainWindow (QMainWindow作为主QMainWindow的子小部件)

浮动子QMainWindow (QMainWindow作为主QMainWindow的子小部件)
EN

Stack Overflow用户
提问于 2014-07-23 17:30:29
回答 1查看 2K关注 0票数 2

我使用QMainWindow作为主QMainWindow。这样,我就得到了另一个可以用于停靠小部件(QDockWidget)的区域。

根据下面的帖子,这是好的,它也非常适合我。

  1. https://qt-project.org/forums/viewthread/17519
  2. http://www.qtcentre.org/threads/12569-QMainWindow-as-a-child-of-QMainWindow

为了使QMainWindow作为一个正常的小部件运行,我取消了窗口标志,在上面的一个帖子中提到了这个技巧。

现在,我还希望能够浮动这个子QMainWindow及其所有停靠的小部件。换句话说,我想还原“使它成为一个正常的小部件”的步骤。不幸的是,这是行不通的。它从主窗口消失了,但根本看不见。

有办法解决吗?

代码语言:javascript
复制
// this is the child QMainWindow
if (this->m_infoAreaFloating)
{
    // this should give me a floating window besides the main window
    this->setWindowFlags(Qt::Desktop);
    this->show();
}
else
{
    // make this compliant as QWidget
    this->setWindowFlags(this->windowFlags() & ~Qt::Window);
}

相关:ab

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 18:05:22

Qt::Desktop标志不是由您自己设置的。

您需要设置Qt::Window标志:

代码语言:javascript
复制
setWindowFlags(m_infoAreaFloating ? Qt::Window : Qt::Widget);
show();

this->windowFlags() & ~Qt::Window没有意义:在设置单独的Qt::Window标志时,您已经清除了所有其他窗口标志。您完全控制了旗子,没有必要保存一些“其他”标志:没有。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24917115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档