gpt4 book ai didi

c++ - float 子 QMainWindow(QMainWindow 作为主 QMainWindow 的子窗口部件)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:35 25 4
gpt4 key购买 nike

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

根据以下帖子,这没问题,它也非常适合我。

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

为了使 QMainWindow 表现得像一个普通的小部件,我取消设置了窗口标志,这个技巧在上面的一篇帖子中提到过。

现在我还希望能够 float 这个子 QMainWindow 及其所有停靠的小部件。换句话说,我想恢复“使其成为普通小部件”的步骤。不幸的是,这不起作用。它从主窗口中消失了,但根本不可见。

有什么办法可以解决吗?

// 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);
}

相关:a , b

最佳答案

Qt::Desktop 标志不是您应该自己设置的东西。

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

setWindowFlags(m_infoAreaFloating ? Qt::Window : Qt::Widget);
show();

this->windowFlags() & ~Qt::Window 没有意义:当设置单独的 Qt::Window 时,您已经清除了所有其他窗口标志旗帜。您可以完全控制标志,无需保留一些“其他”标志:没有标志。

关于c++ - float 子 QMainWindow(QMainWindow 作为主 QMainWindow 的子窗口部件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com