![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
porex |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 10 Регистрация: 15.12.2011 Пользователь №: 3071 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго времени суток!
Есть проект с несколькими формами, иерархия такая: Цитата MainWindow (QWidget) >>>| >>>|----ConfigForm(QWidget) >>>>>>>>| >>>>>>>>|----PatternDialog(QDialog) Первая форма создается и разворачивается на весь экран:
Вторая форма создается динамически по нажатию на кнопку:
А PatternDialog так:
Так вот если при создании ConfigForm в качестве родителя указать MainWindow, то форма не разворачивается на весь экран, а если передать NULL, то ConfigForm разворачивается на весь экран, но при создании PatternDialog на передний план вылазит MainWindow. Как с этим бороться? Да, забыл, пишу под Ubuntu. Сообщение отредактировал porex - 17.12.2011, 16:21
Прикрепленные файлы
|
|
|
ilyabvt |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: ![]() ![]() ![]() |
Естественно, ведь при активации PatternDialog активируется и его родитель т.е. MainWindow. Можно например сразу после активации PatternDialog активировать объект ConfigForm. Или вообще не активировать PatternDialog. Или создавать его без родителя.
|
|
|
BlueIceScream |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Cделай всех сиротами.
|
|
|
Гость_Гость_* |
![]()
Сообщение
#4
|
Гости ![]() |
Естественно, ведь при активации PatternDialog активируется и его родитель т.е. MainWindow. Можно например сразу после активации PatternDialog активировать объект ConfigForm. Или вообще не активировать PatternDialog. Или создавать его без родителя. Как раз когда активируется MainWindow, у PatternDialog родитель ConfigForm без родителя. Необходимо чтобы MainWindow разворачивалась на весь экран, ConfigForm разворачивалась навесь экран(есть родитель или нет все равно), а PatternDialog был модальным со своим размером. |
|
|
porex |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 10 Регистрация: 15.12.2011 Пользователь №: 3071 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
блин, от гостя написал
|
|
|
ilyabvt |
![]()
Сообщение
#6
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: ![]() ![]() ![]() |
Цитата ConfigForm разворачивалась навесь экран(есть родитель или нет все равно) Для этого ему надо поставить флаг Qt::Window. А в остальном по вашему описанию все и так есть, MainWindow и ConfogForm разворачиваются на весь экран. Четче опишите в чем именно проблема. |
|
|
porex |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 10 Регистрация: 15.12.2011 Пользователь №: 3071 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата ConfigForm разворачивалась навесь экран(есть родитель или нет все равно) Четче опишите в чем именно проблема. Проблема в следующем: 1. Если при создании формы ConfigForm указать родителем MainWindow, то ConfigForm не разворачиватся на весь экран; 2. Если создать форму ConfigForm без родителя, то она разворачивается на весь экран, но при создании и отображении PatternDialog, на передний план вылазит MainWindow, хотя должна быть сзади. В первом посте вложение, попробуйте у себя. |
|
|
porex |
![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 10 Регистрация: 15.12.2011 Пользователь №: 3071 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
BlueIceScream |
![]()
Сообщение
#9
|
![]() Студент ![]() Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
porex |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 10 Регистрация: 15.12.2011 Пользователь №: 3071 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо, помогло, PatternDialog модальное, только теперь другая напасть. Если попытаться убрать заголовок окна
То все контролы окна PatternDialog отображаются в ConfigForm (PatternDialog как бы становится прозрачным). Почему так? Это особенность менеджера окон в Linux'e? Сообщение отредактировал porex - 17.12.2011, 16:04 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 21.4.2025, 16:00 |