Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Hellenna от Декабря 06, 2005, 19:19



Название: динамическое создание QDockWidget
Отправлено: Hellenna от Декабря 06, 2005, 19:19
Задача: qt3.3.5 по нажатии на кнопку показывать, например, текст в док окне.
делала так:
Код:

void Window::button_press()
{
    QDockWindow* gl_dw = new QDockWindow( QDockWindow::InDock, this );
    gl_dw->setResizeEnabled( TRUE );
    gl_dw->setVerticalStretchable( TRUE );
    addDockWindow(gl_dw, Qt::DockTornOff);
    setDockEnabled( gl_dw, DockTop, FALSE );
    setDockEnabled( gl_dw, DockBottom, FALSE );
    gl_dw->setCloseMode( QDockWindow::Always );
   
    QLabel* tl=new QLabel(tr("Text"), gl_dw);
    gl_dw->setWidget(tl);
    tl->setMinimumSize(300, 500);
}


окно появляется, лейбла в нем нет :(
начала ставить эксперименты, оказалось, что если тот же код засунуть в конструктор или в функцию init() то все отрисовывается нормально - видим окно и текст в нем.
напрашивается вывод, что после конструктора вызывается какая-то функция которая инициализирует содержимое QDockWindow, только вот какая... подскажите, пожалуйста.


Название: динамическое создание QDockWidget
Отправлено: Sergeich от Декабря 06, 2005, 19:42
Попробуй вставить tl->show() или gl_dw->updateGeometry()


Название: динамическое создание QDockWidget
Отправлено: Hellenna от Декабря 07, 2005, 10:14
Цитата: "Sergeich"
Попробуй вставить tl->show() или gl_dw->updateGeometry()

спасибо. помогло именно tl->show() :)
видимо, вчера вечером совсем перестала соображать от работы...


Название: Re: динамическое создание QDockWidget
Отправлено: kolob от Июня 19, 2011, 18:47
Добрый день. Тема конечно старая, но вопрос такой же. После создания виджета на dockWindow мне нужно вызывать show для каждого виджета?