[Qt-interest] How to prevent automatic loading of QDockWidget?

J-P Nurmi jpnurmi at gmail.com
Thu Feb 25 19:24:01 CET 2010


On Thu, Feb 25, 2010 at 8:12 PM, Konstantin Tokarev <annulen at yandex.ru> wrote:
>
>
> 25.02.10, 20:01, "J-P Nurmi" <jpnurmi at gmail.com>:
>
>> On Thu, Feb 25, 2010 at 7:57 PM, Konstantin Tokarev  wrote:
>> > My application has optional dockwidget, which is automatically shown when it's needed. How to prevent it's loading on application startup?
>> > --
>> > Regards,
>> > Konstantin
>> Just hide() the dock widget.
>> --
>
> I've tried hide() and close(), latter works fine if I want to hide dock during runtime. But whatever I do, dock appears after application load if it was opened when application is closed
>

Double check your code. Something triggers the dock to become visible.
Explicitly hidden child widgets won't become automatically visible
when their parent is shown. This works fine for me:

#include <QtGui>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QMainWindow window;
    QDockWidget* dockWidget  = new QDockWidget(&window);
    dockWidget->setWindowTitle("Hello Dock");
    window.addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
    window.menuBar()->addAction(dockWidget->toggleViewAction());
    dockWidget->hide(); // <---
    window.show();
    return app.exec();
}

--
J-P Nurmi




More information about the Qt-interest-old mailing list