Проблеск QDockWidget в середине экрана при создании

Когда я создаю новый QDockWidget

  myWidget = new MyDockWidget(this);
  MyMainWindow::instance()->addDockWidget(Qt::RightDockWidgetArea, mSettings);

Я вижу это посередине экрана. После этого я могу заметить, что он пристыкован справа. Я работаю под отладчиком, поэтому понятно, что все работает медленно. Тем не менее, конечные пользователи могут работать на перегруженных компьютерах и т. д. Могу ли я создать уже закрепленное окно или скрыть его до тех пор, пока оно действительно не будет закреплено?

В конструкторе у меня есть setupUi(this); для моего MyDockWidget со следующими настройками:

MyDockWidget->setFloating(true);
MyDockWidget->setFeatures(QDockWidget::AllDockWidgetFeatures);
MyDockWidget->setAllowedAreas(Qt::RightDockWidgetArea);

Так почему же он появляется в центре при запуске? Как это исправить?

P.S. Если я устанавливаю родительский виджет док-станции в главное окно, он кажется незакрепленным - почему? Что такое правильный родитель? Мой текущий родитель - окно mdi.


person Aleksey Kontsevich    schedule 26.03.2016    source источник


Ответы (2)


Удалены все функции, оставлено значение по умолчанию, как в примере Dock Widgets, и установлено родительское значение для главного окна — теперь работает нормально.

P.S. Набор функций DockWidgetFloatable | DockWidgetMovable вручную, потом тоже самое в Дизайнере - тоже работает - какой-то странный баг. Решено.

person Aleksey Kontsevich    schedule 26.03.2016

Вы можете просто использовать MyDockWidget->setVisible(false); после того, как настроите все его функции.

person Garjy    schedule 28.03.2016