我正在尝试将浮动(未停靠)QDockWidget 置于全屏模式。在 Windows 上,一切似乎都是直截了当的。例如,我将 dockwidget (dw) 的 topLevelChanged() 信号连接到自定义插槽 floatingChanged()
connect(dw, SIGNAL(topLevelChanged(bool)), this, SLOT(floatingChanged(bool)));
在插槽内我检查:如果 dw 是浮动的并调用 dw->showFullscreen()。
void MainWindow::floatingChanged(bool floating)
{
if( floating )
{
QDockWidget* dw = static_cast<QDockWidget*>(QObject::sender());
dw->showFullScreen();
}
}
在 Windows 中,未停靠(浮动)的 QDockWidget 在取消停靠后直接切换到全屏模式。但是在 linux 下(ubuntu 12.04,gnome-shell 3.4.1)这不起作用(qt 4.8.0)。停靠小部件仅保持正常模式。
我不知道如何将(浮动)QDockWidget 切换到全屏模式。对此的任何解决方案都非常受欢迎。事实上,不同的操作系统在此目的上表现不同。
我已经在网上搜索但没有成功,所以这是我在这里的第一篇文章。请原谅我的拼写错误,我不是以英语为母语的人,thanx ;)
ps 我也会尝试 osx-lions 的行为。顺便说一句:要尝试一下,只需在 Qt 示例http://qt-project.org/doc/qt-5.0/qtwidgets/mainwindows-mainwindow.html的 MainWindow 中实现上面显示的 floatingChanged() 插槽并连接它与任何现有的dockwidgets或在MainWindow::createDockWidget()方法内。