Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: arhiv6 от Январь 24, 2015, 23:40



Название: Баг в QMdiArea (дочерние окна)?
Отправлено: arhiv6 от Январь 24, 2015, 23:40
Всем привет. Понадобилось мне в программе использовать дочерние окна.
При добавлении нескольких окон активным остается последнее, а мне надо, например, первое. Стал искать, как это сделать. Логичной функции setCurrentSubWindow(QMdiSubWindow*) нет. Ладно, есть функция setActiveSubWindow(QMdiSubWindow*), вроде то что нужно, и даже работает:
Код:
QMdiArea *midArea = new QMdiArea(this);
setCentralWidget(midArea);

//midArea->setViewMode(QMdiArea::TabbedView);

QLabel *label1 = new QLabel("first");
QMdiSubWindow *sw1 = midArea->addSubWindow(label1);

QLabel *label2 = new QLabel("second");
QMdiSubWindow *sw2 = midArea->addSubWindow(label2);

midArea->setActiveSubWindow(sw1);
После выполнения кода будет активно первое окно.
НО! если теперь расскоментировать строчку  midArea->setViewMode(QMdiArea::TabbedView), от активным будет всё равно второе окно.
1) Это баг?
2) Как сделать активным окно при TabbedView виде?


Название: Re: Баг в QMdiArea (дочерние окна)?
Отправлено: arhiv6 от Январь 28, 2015, 15:58
+ Ещё вопрос - если унаследовать класс QMdiArea, то как в наследнике реализовать сигнал currentChangedSubWindow, аналогичный сигналу currentChanged класса QTabWidget?