Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: AlekseyK от Март 27, 2016, 00:15



Название: [РЕШЕНО] Мелькание QDockWidget на середине экрана при создании
Отправлено: AlekseyK от Март 27, 2016, 00:15
Когда создаю новый QDockWidget
Код
C++ (Qt)
myWidget = new MyDockWidget(this);
MyMainWindow::instance()->addDockWidget(Qt::RightDockWidgetArea, mSettings);
 
я вижу как он на мгновение появляется посередение экрана, а затем отправляется в правый док, как ему и положено. Запускаю в отладчике, поэтому вещи могут происходить медленно. Однако и у пользователей могут быть не быстрые машины, и такое поведение - не вариант. Можно ли создать виджет, который изначально будет в  доке или прятать его пока он не очутится там?

В конструкторе моего MyDockWidget в setupUi(this) устанавливаются следующие настройки:
Код
C++ (Qt)
MyDockWidget->setFloating(true);
DependencyPlotSettingsPanel->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);
MyDockWidget->setAllowedAreas(Qt::RightDockWidgetArea);
 
Почему же он изначально появляется в середине? Как это исправить?

P.S. И ещё, если установить main window в качестве родителя для dock widget, то он появляется посередине экрана - не в доке - почему? Какой виджет нужно указывать в качестве родительского? Текущий родитель - это одно из MDI окон.


Название: Re: [РЕШЕНО] Мелькание QDockWidget на середине экрана при создании
Отправлено: AlekseyK от Март 27, 2016, 03:02
Какой-то странный глюк: убрал все features, оставил по умолчанию как в примере Dock Widgets Example, а также установил родителем главное окно - заработало.

P.S. Затем опять установил features в DockWidgetFloatable | DockWidgetMovable вручную, а затем и через Designer - снова работает - в общем мистика какая-то. Решено.