|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
||||||
Диалог в Qt Designer12.09.2020, 14:30. Показов 4062. Ответов 24
Добрый день! Помогите, пожалуйста! Создала в Qt Designer диалог. Назвала файл Ui_My_dialog_ui.ui. В коде создала для него класс My_dialog. В классе MyWidget в функции func_dialog создаю объект класса My_dialog.
1)Как исправить, что после закрытия окна диалога, всё приложение закрывается с ошибкой (Process finished with exit code -1073741819 (0xC0000005))? 2)Как сделать, чтобы когда нажимаешь на кнопку в диалоге, вызывалась функция func_with_par и ей передавалось значение self._my_value?
0
|
||||||
| 12.09.2020, 14:30 | |
|
Ответы с готовыми решениями:
24
PyQt5: в Qt Designer Диалог открытия и сохранения файлов? Qt Designer и диалог правки стилей Digital Designer / Interface Designer for top company in Munich / Germany. Non EU applicants very welcome, we sponsor Visa! |
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 12.09.2020, 14:58 | |
|
Simply me, скопипасть сюда код целиком, без всяких сомнительных сокращений.
0
|
|
|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
|
| 12.09.2020, 17:01 [ТС] | |
|
Там в проекте больше 100 файлов. Мне кажется, всё, что имеет значение, я оставила.
Просто принцип хочу понять, как сделать, чтобы после завершения функции, в которой создается объект диалога, после закрытия этого диалога всё приложение не вылетало. И если в диалоге пользователь ввел значение и нажал кнопку, то как передать это значение в функцию, которая вызывается по кнопке.
0
|
|
|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
||||||
| 13.09.2020, 06:36 [ТС] | ||||||
|
Сократила немного код. Функцию func_dialog и класс My_dialog полностью привожу. Скажите, пожалуйста, как исправить, чтобы при закрытии диалога приложение не вылетало с ошибкой.
0
|
||||||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 13.09.2020, 08:49 | |
|
0
|
|
|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
||
| 13.09.2020, 12:00 [ТС] | ||
|
0
|
||
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,763
|
||||||||||||
| 13.09.2020, 12:39 | ||||||||||||
вот пример диалога
1
|
||||||||||||
|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
|
| 13.09.2020, 13:48 [ТС] | |
|
У меня форма диалога создается в Qt Designer. В коде для него есть класс, в котором вызываю setupUi. Диалог создается в функции класса MyWidget и существует, пока выполняется эта функция. Не знаю, как передать значение из диалога в другую функцию класса MyWidget, даже если сначала сохранить его в поле класса MyWidget. И не знаю, как сделать, чтобы приложение не закрывалось, когда диалог закрываю.
И в Вашем примере d.exec() = 1, а у меня dialog_wgt.exec() = 0
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,763
|
|
| 13.09.2020, 17:15 | |
|
1 - Ok, 0 - Cancel стандартно. сохранение - getText() в моем примере
0
|
|
|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
|
| 13.09.2020, 18:49 [ТС] | |
|
Сейчас просто открыла Qt Designer, выбрала один из виджетов, предлагаемых по умолчанию, ничего вообще не меняла, сохранила. В классе My_dialog в функции setup_ui поменяла имя как objectName в файле ui. Тоже самое: когда закрыла окно диалога, приложение завершилось с ошибкой. Не знаю, как создать диалог в функции
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,763
|
||||||||||||
| 13.09.2020, 23:00 | ||||||||||||
|
открываю дизайнер, делаю диалог - получаю ui файл.
делаю
чота вы путаете dlg.ui
1
|
||||||||||||
| 14.09.2020, 00:19 | ||||||
|
Может быть это вам поможет?
Хлтя, конечно, не Qt Designer, но всё-таки даёт представление о том, каким образом можно вернуть из функции изменённые в диалоге параметры
1
|
||||||
|
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
|
|
| 14.09.2020, 06:38 [ТС] | |
|
iamvic, спасибо. Попробую, когда приложение перестанет падать.
vic5710, спасибо. У Вас диалог создается в блоке if __name__ == "__main__". Если Вы в блоке if __name__ == "__main__ создадите любой другой виджет (можно не в дизайнере), у которого будет кнопка (или пункт меню), при нажатии на которую (который) будет вызываться функция и в ней будет создаваться диалог из дизайнера, при закрытии диалога у Вас будет падать всё приложение?
0
|
|
|
Модератор
|
|
| 14.09.2020, 08:10 | |
|
Simply me,
1) Не использовать QtDesigner. 2) Чтобы передать данные в другой виджет, можно использовать сигналы или атрибуты класса. 3) Для вызова функции с каким то определенным параметром через события, можно использовать слоты, либо лямбды.
1
|
|
| 14.09.2020, 08:17 | |
|
Остаётся только пожелать вам удачи. Понятно, что вы не можете раскрыть чувствительную информацию о реальном проекте. Ну сляпайте вместе c Qt Designer-ом какую-нибудь левую демонстраху с таким же эффектом, чтобы можно было понять, что происходит-то.
Ведь ошибочка-то 0xC0000005 весьма неприятная - STATUS ACCESS VIOLATION называется в терминах Microsoft. Добиться её в этом паровозе приложение->python->PyQt->Qt->ОС весьма непросто, надо сделать что-то уж совсем запредельное. Ну и при возникновении такого рода ошибок неплохо было озвучивать версии ОС, Qt, PyQt и python, чтобы как-то сориентировать людей о своём окружении.
1
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 14.09.2020, 08:24 | |
|
DmFat верно сказал - зачем использовать дизайнер, если там элементарнейший диалог? Вручную и наглядней, и наверняка, и лишнего файла не надо...
0
|
|
|
Модератор
|
|
| 14.09.2020, 08:29 | |
|
iSmokeJC, да даже если это огромное окно с 1.000 кнопок, я не вижу вообще смысл использовать дизайнер, во первых - код просто становится не читабельный если конвертировать из *.ui в *.py, во вторых - это лишние файлы, в третьих - понять что, где и как работает будет вызывать панические атаки и истерический смех.
1
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||
| 14.09.2020, 08:38 | ||
|
DmFat, согласен
![]() Добавлено через 1 минуту Просто привыкли к формошлепству, как в дельфях и шарпах разных, вот и результат. Добавлено через 4 минуты Кстати о птичках. Если по уму, в дизайнере можно создать вполне самодостаточную форму, не требующую привязанного класса. Достаточно в каком-либо своем классе-наследнике от QObject приконнектиться и отлавливать нужное слотом. ![]() Добавлено через 1 минуту
0
|
||
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,763
|
|||||||
| 14.09.2020, 11:42 | |||||||
1
|
|||||||
| 14.09.2020, 15:12 | ||||||
|
А вот сама идея - вызывать диалог в отдельной посторонней функции и потом вытрясывать из него отредактированные параметры - она правильная? Может лучше сделать функцию класса, наподобии QMessageBox.critical() и прочих public static members, тем более класс-то диалога самописный. Ну, потребуется кому-нибудь изменить значение параметра, дёрнет он эту функцию класса... и всё красиво, всё внутри класса. И только новое значение наружу вылетает, которое вызвавший может засунуть туда куда ему надо.
0
|
||||||
| 14.09.2020, 15:12 | |
|
Помогаю со студенческими работами здесь
20
Как создать диалог выбора шрифта и диалог выбора цвета
Designer Qt Designer QT Designer Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|