Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: vux от Февраля 09, 2012, 19:39



Название: последнее открытое окно
Отправлено: vux от Февраля 09, 2012, 19:39
Есть QMainWindow. В нем постоянно открываються окна-потомки.
Как (каким евентом) проще всего узнать какое окно было открыто последним?


Название: Re: последнее открытое окно
Отправлено: kambala от Февраля 09, 2012, 20:34
самому отслеживать в коде


Название: Re: последнее открытое окно
Отправлено: vux от Февраля 09, 2012, 20:41
это я понимаю - но какой евент повесить на QMainWindow ?


Название: Re: последнее открытое окно
Отправлено: kambala от Февраля 09, 2012, 20:48
такого события и сигнала вроде нету. просто заведи переменную типа QWidget * и присваивай ей диалог, который открываешь в соответствующих частях кода, или строковую переменную, которая имя класса будет хранить - как будет удобнее.


Название: Re: последнее открытое окно
Отправлено: vux от Февраля 09, 2012, 20:54
я бы так и делал но дело в том что я модифицирую поведение не своей програмы а сторонней с исп. питона и pyqt.
И я не знаю когда появиться очередное окно я просто знаю имя окна ( по objectName() ) и мне его нада отловить

Вообще мне нужно окно ( с именем которое я знаю ) открывать поверх остальных


Название: Re: последнее открытое окно
Отправлено: andrew.k от Февраля 09, 2012, 23:03
QList<T> QObject::findChildren ( const QString & name = QString() ) const


Название: Re: последнее открытое окно
Отправлено: vux от Февраля 09, 2012, 23:23
и когда мне его вызывать? Если окна создаються спонтанно


Название: Re: последнее открытое окно
Отправлено: andrew.k от Февраля 09, 2012, 23:47
и когда мне его вызывать? Если окна создаються спонтанно
Ну я ж не знаю как там оно устроено.
Когда собираешься что-то делать, тогда и вызывай.
Или ты хочешь отловить именно момент открытия окна? Тогда может надо заранее на все интересующие тебя окна поставить eventFilter и отлавливать событие показа.