我正在尝试将一个浮动(未停靠)的QDockWidget放入全屏模式。在Windows上,一切似乎都很简单。例如,我将dockwidget(dw)的topLevelChanged()信号连接到自定义槽floatingChanged()中。
在插槽内,我会检查:如果dw正在浮动,则调用dw->showFullscreen()。
在Windows中,未停靠(浮动)的QDockWidget在取消停靠后会直接切换到全屏模式。但在Linux下(Ubuntu 12.04,Gnome-Shell 3.4.1),这种方式不起作用(Qt 4.8.0)。停靠窗口仅保持正常模式。
我无法弄清如何将(浮动)QDockWidget切换到全屏模式。任何关于此问题的解决方案都非常欢迎。实际上,不同的操作系统在此目的上的行为是不同的。
我已经在网上搜索了很久,但没有成功,所以这是我在这里发的第一篇帖子。 请原谅我的拼写错误,我不是母语为英语的人,谢谢;)
顺便说一句:我也会尝试OSX-Lion的行为。通过实现Qt示例http://qt-project.org/doc/qt-5.0/qtwidgets/mainwindows-mainwindow.html中MainWindow的上述floatingChanged()槽并将其连接到任何现有的dockwidgets或MainWindow :: createDockWidget()方法中,您可以尝试它。
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切换到全屏模式。任何关于此问题的解决方案都非常欢迎。实际上,不同的操作系统在此目的上的行为是不同的。
我已经在网上搜索了很久,但没有成功,所以这是我在这里发的第一篇帖子。 请原谅我的拼写错误,我不是母语为英语的人,谢谢;)
顺便说一句:我也会尝试OSX-Lion的行为。通过实现Qt示例http://qt-project.org/doc/qt-5.0/qtwidgets/mainwindows-mainwindow.html中MainWindow的上述floatingChanged()槽并将其连接到任何现有的dockwidgets或MainWindow :: createDockWidget()方法中,您可以尝试它。