Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Admin от Февраль 03, 2009, 10:53



Название: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Admin от Февраль 03, 2009, 10:53
Нужно 2 окна - родительская форма и modeless диалог. При получении фокуса любым из окон, оно должно всплывать наверх. А мodeless диалог всегда торчит наверху. Что уже не толко не перепробовал - ничего его не берет.  >:(


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: BRE от Февраль 03, 2009, 11:42
Нужно 2 окна - родительская форма и modeless диалог. При получении фокуса любым из окон, оно должно всплывать наверх. А мodeless диалог всегда торчит наверху. Что уже не толко не перепробовал - ничего его не берет.  >:(
Так может не делать его модальным?
Сделать ему show(), место exec().


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Admin от Февраль 03, 2009, 11:49
я несколько раз отметил что диалог modeless, а не modal  ;D
модальный вообще бы не дал фокусу переключиться.


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: BRE от Февраль 03, 2009, 11:55
я несколько раз отметил что диалог modeless, а не modal  ;D
модальный вообще бы не дал фокусу переключиться.
С утра это у меня, полная невнимательность.  ;D


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Alex03 от Февраль 04, 2009, 12:44
Цитировать
Modeless диалог всегда торчит поверх родительской формы
Обнулить родителя.


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Admin от Февраль 04, 2009, 15:51
эээ
тоесть

Код
C++ (Qt)
QDialog* dlg = new QDialog(NULL);


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: lit-uriy от Февраль 04, 2009, 17:07
нет просто "0",
а вообще есть ли смысл создавать диалог динамически, может всеже как обычную переменную?


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Alex03 от Февраль 05, 2009, 08:35
эээ
тоесть
Код
C++ (Qt)
QDialog* dlg = new QDialog(NULL);
Угу.
Ну а NULL или 0 в данном случае не принципиально. ИМХО лучше писать всё в одном стиле.


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Alex03 от Февраль 05, 2009, 08:42
Впрочем даже скорее не
Код:
QDialog* dlg = new QDialog(NULL);
а
Код:
dlg = new QMyDialog(NULL);
Где QMyDialog* dlg - член класса (удаляемый в деструкторе и т.д.)
или
а вообще есть ли смысл создавать диалог динамически, может всеже как обычную переменную?
Т.е. член класса QMyDialog dlg


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Admin от Февраль 05, 2009, 10:24
ну для меня смысл в том, что нужна функция очистки полей диалога
и легче его грохнуть и возродить снова, чем писать функцию очистки)


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: lit-uriy от Февраль 05, 2009, 13:37
дак выйди из области видимости переменной да зайди заново.


Название: Re: Modeless диалог всегда торчит поверх родительской формы.
Отправлено: Admin от Февраль 05, 2009, 17:44
способ помог
щас окна действительно перекрываются друг другом!