我有一个由主窗口调用的UI窗口。我希望它是非模态的,但保持在父模式之上,如果父模式最小化,则用它最小化。
如果用户想要在两者中进行更改,他应该能够,并且除非用户关闭它,否则不会关闭孩子。孩子总是会留在父母之上 - 但不会在其他任何事情之上。
m_child->show();
m_child->activateWindow();
上面将孩子放在父母的上面,它允许在孩子被启动时对父母进行工作......但是如果孩子失去焦点,孩子就会隐藏在父母后面。
m_child->show();
m_child->activateWindow();
m_child->raise();
没有变化。
使用
Qt::WindowFlags flags = m_child->windowFlags();
m_child->setWindowFlags(flags | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
m_child->show();
m_child->activateWindow();
孩子处于最顶层,正如我想要的那样,我可以在孩子仍在最佳位置时对父母工作......但是尽量减少父母也不会使孩子最小化,并且孩子仍然在所有孩子身上windows(它应该只保留在父级之上)
如何制作"工具箱样式"效果 - 当父项处于活动状态时,将子项置于父项之上,但在父项最小化时将子项最小化?
我还尝试了所有的窗口标志,但它们允许孩子在失去焦点时隐藏起来。
答案 0 :(得分:9)
您可以通过向工具箱小部件添加Qt::Tool
标志并将主窗口设置为其父级来实现此行为。