Не получается вызвать QDialog из QMailWindow |
Здравствуйте, гость ( Вход | Регистрация )
Не получается вызвать QDialog из QMailWindow |
Гость_Гость_* |
10.10.2007, 9:45
Сообщение
#1
|
Гости |
Есть два класса, производные от QMailWindow и QDialog.
Как вызвать из QMailWindow диалог таким образом, чтобы пользователь мог переключаться между окнами? |
|
|
Admin |
10.10.2007, 9:48
Сообщение
#2
|
Администратор Группа: Администратор Сообщений: 646 Регистрация: 9.10.2007 Из: crossplatform.ru Пользователь №: 1 Спасибо сказали: 17 раз(а) Репутация: 2 |
Тебе нужно вызвать:
А вообще почитай по поводу модальный и не модальных окон... |
|
|
Гость_Гость_* |
10.10.2007, 10:01
Сообщение
#3
|
Гости |
Тогда второй вопрос, а где и когда мне уничтожать pDlg?
|
|
|
Admin |
10.10.2007, 10:29
Сообщение
#4
|
Администратор Группа: Администратор Сообщений: 646 Регистрация: 9.10.2007 Из: crossplatform.ru Пользователь №: 1 Спасибо сказали: 17 раз(а) Репутация: 2 |
Повесь на сигнал finished слот deleteLater.
И при закрытии диалога выделенная память будет уничтожена, но не сразу. |
|
|
flankerr |
25.4.2008, 11:07
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
елси верить такс менеджеру то когда диалог закрываается память осовбождается и без всяких deleteLater
можно указать parent new CxxxDialog( this ); тогда QT при удалении parent удалит и потомка. |
|
|
Vialent |
26.4.2008, 19:03
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 16.3.2008 Пользователь №: 122 Спасибо сказали: 0 раз(а) Репутация: 0 |
Господа, мне кажется, что если диалог используется часто, то лучше его просто объявить внутри класса MainWindow, где-нибудь в разделе Private или Public. И не заниматься его периодическим созданием/удалением.
А чтобы вызвать диалог модально, вроде бы стоит запускать его exec(). По крайней мере мне так кажется. Если я не гоню конечно. Сообщение отредактировал Vialent - 26.4.2008, 19:04 |
|
|
Litkevich Yuriy |
26.4.2008, 19:30
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Как вызвать из QMailWindow диалог таким образом, чтобы пользователь мог переключаться между окнами? чтобы дочернее окно пускало в родителя, оно, дочернее, должно быть не модальным. Тогда второй вопрос, а где и когда мне уничтожать pDlg? нигде не надо, оставь это на откуп родителю, т.е. создавай так
где parent указатель на родителя. А чтобы вызвать диалог модально, вроде бы стоит запускать его exec(). наиболее употребительный, на мой взгляд, вариант, но есть и такой вариант: Цитата An alternative is to call setModal(true) or setWindowModality(), then show(). но тут будет нюанс, управление в родителявернется сразу, и чтобы отследить когда закроется дочернее, нужно уже механизм сабытий использовать. |
|
|
Текстовая версия | Сейчас: 22.12.2024, 13:46 |