Название: Показать окно Отправлено: Alex_C от Апрель 23, 2012, 15:16 По клику меню нужно манипулировать окнами:
- если окно не было создано, создать его, показать и передать ему фокус. - если окно уже создано, но не активно - переместить его на передний план и передать ему фокус. - если окно активно - закрыть его. Делаю так: Код: void MainForm::showWindow() У меня не правильно работает вот этот кусок - Код: if(a->data().toInt() != int(lastFocusForm)) у меня правильно определяется, что окно не активно, но метод show() - не срабатывает и фокус окну не передается. Я так понимаю что в Qt метод show() срабатывает только когда окно не открыто. Как тут правильно сделать? Название: Re: Показать окно Отправлено: kambala от Апрель 23, 2012, 15:47 см. методы raise() и activateWindow()
Название: Re: Показать окно Отправлено: Alex Custov от Апрель 23, 2012, 15:57 Код
Название: Re: Показать окно Отправлено: Alex_C от Апрель 23, 2012, 16:44 Спасибо!
С этим все понятно. При вызове activateWindow не происходит событие focusInEvent. В результате чего не получается узнать, какое окно было последним активным, чтоб при клике по меню главного окна это окно или закрыть, или показать. Как это можно обойти? Да и еще чтоб лишнюю тему не плодить - если у QAction указано setCheckable(true), то при клике по этому актион оно автоматом будет галочку ставить/убирать. А можно ли сделать так, что галочка будет выставляться/сниматься только когда я буду указывать setCheched явно? |