Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
bigory |
21.10.2010, 23:30
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0
|
Доброе всем время суток!
Подскажите как создавать второе окно? Расположить на нем нужные мне элементы? и как в коде связываться с этими элементами? Я хочу из главного окна вызвать через меню второе окно, что-то похожее на модальное диалоговое окно, где будут находиться мои компоненты. И как сделать чтобы при закрытии программы не оставалась в памяти невидимое незакрытое окно |
|
|
|
|
Алексей1153 |
22.10.2010, 6:47
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(bigory @ 22.10.2010, 2:30) Link Подскажите как создавать второе окно? любое окно (второе, третье, десятое) создаётся одинаково: Цитата(bigory @ 22.10.2010, 2:30) Link Расположить на нем нужные мне элементы? и точно так же создаются элементы, добавляются на окно-диалог. Некоторые любят лейауты (компоновщики) ещё использовать - но это смотри сам, а по мне так они лишние Цитата(bigory @ 22.10.2010, 2:30) Link Я хочу из главного окна вызвать через меню второе окно, что-то похожее на модальное диалоговое окно, где будут находиться мои компоненты. модальное окно будет блокировать родительское окно. Тебе немодальное нужно Цитата(bigory @ 22.10.2010, 2:30) Link И как сделать чтобы при закрытии программы не оставалась в памяти невидимое незакрытое окно собственно, создать немодальное окно, а затем скрыть (hide()) |
|
|
|
|
bigory |
22.10.2010, 18:39
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0
|
Мне интересно как и модальное и немодальное окно создается
|
|
|
|
|
Алексей1153 |
22.10.2010, 19:05
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
читай про методы
int QDialog::exec () и void QWidget::show () + void QDialog::setModal ( bool modal ) |
|
|
|
|
Litkevich Yuriy |
22.10.2010, 19:46
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Link
|
|
|
|
|
bigory |
22.10.2010, 19:58
Сообщение
#6
|
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0
|
И еще один вопрос.
Я хочу создать в режиме дизайнера 2е окно и вызывать его как модальное окно. Вот я создал нужное мне 2е окно, расположил на нем элементы, но как его связать и вызывать его когда оно нужно? |
|
|
|
|
bigory |
22.10.2010, 20:57
Сообщение
#7
|
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0
|
Почитал я про диалоговые окна, но пока реши начать с простого, но что-то не получается.
Вызываю окно, оно появляется и сразу исчезает. Вот моя сборка Link ( 2.47 Kb ) Что там не так? |
|
|
|
|
BRE |
22.10.2010, 21:27
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(bigory @ 22.10.2010, 21:57) Link Что там не так? Ты объект диалога создаешь на стеке, поэтому при выходе из слота IP() этот объект разрушается. Создавай этот объект на куче (через new). |
|
|
|
|
bigory |
22.10.2010, 22:02
Сообщение
#9
|
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0
|
Можно пример? New может сильно жрать память
|
|
|
|
|
bigory |
22.10.2010, 23:00
Сообщение
#10
|
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0
|
Не понял что значит создать объект на куче
Я попробовал сделать вот так: Раскрывающийся текст void MainWindow::IP() { Dialog* a=new Dialog(); a->show(); } Вот вопрос, не будет сильно влиять на память? Какой подход будет более правильным? |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 25.12.2025, 21:58 |