Есть наследник от QMainWindow. В конструкторе создается туча отстегнутых QDockWidget-ов. Режимов редактирования у приложения много и поэтому сразу же их необходимо скрыть. Проблема заключается в том, что dock widget-ы все равно на мгновение появляются при старте. Как это можно исправить? Вот упрощенный код (на "сильных" ПК вряд ли увидете мерцание):
main.cpp
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtGui/QDockWidget>
#include <QtGui/QMainWindow>
int main( int argc, char** argv )
{
QApplication app( argc, argv );
QMainWindow* window = new QMainWindow();
QDockWidget* dockWidget1 = new QDockWidget( window );
dockWidget1->setAllowedAreas( Qt::NoDockWidgetArea );
dockWidget1->resize( 250, 250 );
window->addDockWidget( Qt::LeftDockWidgetArea, dockWidget1 );
dockWidget1->setFloating( true );
dockWidget1->hide();
QDockWidget* dockWidget2 = new QDockWidget( window );
dockWidget2->setAllowedAreas( Qt::NoDockWidgetArea );
dockWidget2->resize( 250, 250 );
window->addDockWidget( Qt::LeftDockWidgetArea, dockWidget2 );
dockWidget2->setFloating( true );
dockWidget2->hide();
QDockWidget* dockWidget3 = new QDockWidget( window );
dockWidget3->setAllowedAreas( Qt::NoDockWidgetArea );
dockWidget3->resize( 250, 250 );
window->addDockWidget( Qt::LeftDockWidgetArea, dockWidget3 );
dockWidget3->setFloating( true );
dockWidget3->hide();
QDockWidget* dockWidget4 = new QDockWidget( window );
dockWidget4->setAllowedAreas( Qt::NoDockWidgetArea );
dockWidget4->resize( 250, 250 );
window->addDockWidget( Qt::LeftDockWidgetArea, dockWidget4 );
dockWidget4->setFloating( true );
dockWidget4->hide();
app.setActiveWindow( window );
window->show();
return app.exec();
}
application.pro:
TEMPLATE = app
LANGUAGE = C++
CONFIG += release qt warn_on
SOURCES += main.cpp
TARGET = application