Я пытаюсь перевести плавающий (не закрепленный) QDockWidget в полноэкранный режим. В Windows все кажется прямым. Например, я подключаю сигнал topLevelChanged() док-виджета (dw) к пользовательскому слоту floatChanged().
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 в полноэкранный режим. Любые решения по этому вопросу очень приветствуются. На самом деле разные ОС действуют по-разному для этой цели.
Я уже безуспешно искал в Интернете, так что это мой первый пост здесь. Пожалуйста, простите меня за орфографические ошибки, я не являюсь носителем английского языка, спасибо;)
p.s. Я тоже попробую поведение osx-lions. Кстати: чтобы попробовать, просто реализуйте показанный выше слот floatChanged() в MainWindow примера Qt http://qt-project.org/doc/qt-5.0/qtwidgets/mainwindows-mainwindow.html и соедините его с любым из существующих док-виджетов или внутри MainWindow: :createDockWidget().