Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: voronElf от Февраль 12, 2010, 08:26



Название: QMdiArea. Веселые дочерние окна
Отправлено: voronElf от Февраль 12, 2010, 08:26
Всем привет.

У меня на QMainWindow лежит QMdiArea, в которой создаются дочерние окошки (QMdiSubWindow). 3 вида дочерних окошек (класс наследован от QWidget со своими виджетами, оборачивается в QMdiSubWindow). Функция добавления в QMdiArea общая для всех (принимает адрес виджета, возвращает адрес QMdiSubWindow).

Заметил интересную особенность: открыто дочернее окошко (одно или несколько 1 или 2-го вида), открываешь окошко 3-го вида - активными становятся оба. Т.е. можно щелкнуть по первому окошку (заголовки выглядят так, как будто оба являются активными) и таскать его - таскается, но на первый план не отрисовывается. Другими словами весь функционал есть, только окошко третьего вида не скрывается, висит поверх остальных дочерних окошек. Если после этого открыть еще какое-то окошко дочернее - все нормально становится.

У кого найдутся мысли по этому поводу ? голову уже сломал от такого веселья ...


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: sne от Февраль 12, 2010, 22:49
Тоже подобное поведение замечал, причем setActiveWindow, или как-то там, на память пишу, не помогал.
Кроме того, у меня на QMainWindow были еще и DOckWidgets на котором QComboBox, так вот если поиграться с ComboBox, фокус на QMdiSubWindow и их активация вообще не поддавались никакой логике.
Так и не решил, оставил как есть :(


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: lit-uriy от Февраль 13, 2010, 01:40
два сообщения о странном поведении. Это повод выложить тестовый исходник для проверки


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: zloyGamer от Февраль 16, 2010, 10:51
да, выложите плиз, мне кокраз это и надо реализовать, - чтобы одно дочернее окно было всегда поверх других дочерних, буду оч. благодарен ))


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: voronElf от Февраль 16, 2010, 11:40
надеюсь седня найдется время в коде оставить только то что к окнам относится (там 4 модуля по ~ 1500 строк, многовато будет для топика)


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: zloyGamer от Февраль 16, 2010, 11:43
так запакуй и архивом выложЫ, я на досуге думаю разберусь,
заодно и тебе покажу нужный мне участок кода и ты будешь знать что тебе поправить ))


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: voronElf от Февраль 16, 2010, 11:58
за это меня директор порепает, у него коммерческая тайна видите ли, так бы давно бы выложил

не себе прогу пишу


Название: Re: QMdiArea. Веселые дочерние окна
Отправлено: yfdrnchk от Март 15, 2010, 13:05
два сообщения о странном поведении. Это повод выложить тестовый исходник для проверки

хм. у меня тоже вылазит странное поведение. портирую с qt3 на qt4, переписал часть кода, касайщуюся дочерних окон.
- при открытии файла slot повешенный на сигнал subWindowActivated срабатывает,
при создании нового файла - нет (поведение схоже на описанное в первом посте для окон 3го вида).
вроде всё как в примере к Qt.

может кто кинет ссылкой на что-нибудь типа толкового примера c QMdiArea c пояснениями?
возможно я что-то недопонял со слотами и сигналами.