我用QDockWidget的子类有一个小窍门。 所述“topLevelChanged”信号被连接到该构件狭槽:
void MyDockWidget::updateWindowFlags(bool topLevel)
{
if (topLevel == true)
{
setWindowFlags(Qt::Dialog|Qt::CustomizeWindowHint|Qt::WindowTitleHint|Qt::WindowMaximizeButtonHint|Qt::WindowCloseButtonHint);
// "setWindowFlags" hides the widget, show it again
show();
}
}
这种运作良好(至少在Windows上,这是我的目标),并显示在标题栏显示“最大化”按钮。
现在,我想使码头部件表现得像一个“顶级”窗口小部件:不是始终在主窗口的顶部,并出现在任务栏上。
我试着:
- 重新设置父级船坞部件为NULL当它从主窗口中分离
- 重新设置父级坞插件先前父当它从主窗口重新附
但仍然有一些问题:用户不能使用拖放了被告席重新连接到主窗口。
我想这是因为父是空的,所以停靠小部件不知道它应该在拖放重新连接。
有没有什么办法有期望的行为(基座部件不是总在最前面,并显示在任务栏),而无需重新养育为NULL? 有一些标志玩?
或者,反正是有有码头窗口小部件时其父被设置为NULL,以正确的行为?
谢谢