Russian Qt Forum

Qt => Вопросы новичков => Тема начата: sandurlay от Март 12, 2011, 16:24



Название: [РЕШЕНО] По поводу QMdiSubWindow::isActiveWindow
Отправлено: sandurlay от Март 12, 2011, 16:24
Mdi приложение, в статус бар вывожу параметры с активного окна (в слоте paintEvent):
Код:
if (this->isActiveWindow()) {
   ...
}

Когда активная форма перекрывает другую - в статус бар лезут параметры с этой перекрытой формы. Как исправить?


Название: Re: По поводу QMdiSubWindow::isActiveWindow
Отправлено: Mikhail от Март 12, 2011, 18:24
Интересно бы знать для чего?


Название: Re: По поводу QMdiSubWindow::isActiveWindow
Отправлено: sandurlay от Март 12, 2011, 18:44
Курсовая работа. Деревья. В каждом окне свое дерево рисуется. А в статус бар выводится, например, высота текущего дерева. И вот если активное окно двигать и перекрыть другое неактивное окно, то в статус бар лезет информация от этого неактивного окна. Если снова отодвинуть активное окно за пределы другого - то все снова нормально.

Вывод информации в статус бар я сделал в переопределенном слоте paintEvent:
Код:
if (this->isActiveWindow()) {
Добавить в label в статус баре нужный текст
}


Название: Re: По поводу QMdiSubWindow::isActiveWindow
Отправлено: Mikhail от Март 13, 2011, 12:03
Используй QMdiSubWindow * QMdiArea::activeSubWindow ()
и  в paintEvent проверяй что если это реально активное окно, то пишем в статус, иначе ничего не делать.


Название: Re: По поводу QMdiSubWindow::isActiveWindow
Отправлено: sandurlay от Март 13, 2011, 12:33
Помогло. Спасибо.