Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kdm от Ноябрь 11, 2010, 15:39



Название: Mdi Area отказывается отображать новые окна (решено)
Отправлено: kdm от Ноябрь 11, 2010, 15:39
Проблемма в том, что имеется QMdiArea в некотором лейауте и я добавляю туда виджеты.
Дело в том, что когда я это делаю внутри конструктора родительской формы:
Код:
    mdiareaViewWindowsArea = new QMdiArea(this);
    spltViews->addWidget(mdiareaViewWindowsArea);
    mdiareaViewWindowsArea->addSubWindow(new QLabel("window", mdiareaViewWindowsArea));
то все проходит отлично, показывается маленькой окно с написью.

Но когда я добавляю виджет внутри слота родительской формы (по нажатию кнопки):
Код:
void PageClass :: pbtnAddViewWindow_clicked ()
{    
    ViewClass* view = new ViewClass(mdiareaViewWindowsArea);
    ViewWindowsList.append(view);

    //mdiareaViewWindowsArea->addSubWindow(view);
    //mdiareaViewWindowsArea->addSubWindow(new QMdiSubWindow(mdiareaViewWindowsArea));
    mdiareaViewWindowsArea->addSubWindow(new QLabel("zxczxczcx", mdiareaViewWindowsArea));

    qDebug() << "added";

    // slots
}
то никаких окно я не вижу, кроме того, чтобы было добавлено в конструкторе.

Пробовал на Qt 2009.03 и 2010.03.


Название: Re: Mdi Area отказывается отображать новые окна
Отправлено: GreatSnake от Ноябрь 11, 2010, 15:47
Если создаешь QMdiSubWindow после того как QMainWindow уже отрисовалось, то нужно делать принудительно QMdiSubWindow::show().


Название: Re: Mdi Area отказывается отображать новые окна
Отправлено: kdm от Ноябрь 11, 2010, 15:51
Фух, спасибо, а то еще бы долго мучался :)