Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 14

Возможно ли сконвертировать файл .py обратно в .ui

05.05.2023, 16:17. Показов 5111. Ответов 13

Студворк — интернет-сервис помощи студентам
Добрый день.

возникла проблема.
Сделал в Qt Designer GUI и сохранил. Потом сконвертировал в .py и добавил свой код. Всё работает нормально Теперь хочу опять поработать с этим файлом в Qt Designer и понимаю что похоже как обратного пути нет. Как я понял обратно из .py в .ui его не переделать.

Пожалуста все кто может помогите советом, я даже и не думал что и такие проблемы могут возникнуть в 2023.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2023, 16:17
Ответы с готовыми решениями:

Как сконвертировать URL вида %D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B0 туда и обратно?
Здрасьте всем! Пришлось перелезть из Борланда на MS Visual Studio 5 под Windows XP. Делаю маленький Веб сервер. Так вот надо...

Можно ли сконвертировать созданный в программе Network Automation AutoMate файл скрипта в EXE-файл?
Здравствуйте! Создал скрипт в этой программе. К сожалению, оказалось, что скрипты, сделанные в ней (имеют расширение .aml) нельзя...

Бинарный файл, как сконвертировать в текстовый
Здравствуйте, кто работал с бинарными файлами , не nодскажете какой нибудь гайд nо работе с ними или как можно конвертировать их в...

13
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
05.05.2023, 16:48
На будущее, ынтырнеты советуют не конвертировать .ui в .py, а работать напрямую, пример
Python
1
2
3
4
5
6
7
8
import sys
from PyQt6 import QtWidgets, uic
 
app = QtWidgets.QApplication(sys.argv)
 
window = uic.loadUi("mainwindow.ui")
window.show()
app.exec()
По основному вопросу, теже ынтырнеты советуют использовать QtDesigner.QFormBuilder, но данный способ не гарантирует 100% совпадения с оригиналом.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from PyQt4 import QtCore, QtGui, QtDesigner
from myui import Ui_Dialog
 
def dump_ui(widget, path):
    builder = QtDesigner.QFormBuilder()
    stream = QtCore.QFile(path)
    stream.open(QtCore.QIODevice.WriteOnly)
    builder.save(stream, widget)
    stream.close()
 
app = QtGui.QApplication([''])
 
dialog = QtGui.QDialog()
Ui_Dialog().setupUi(dialog)
 
dialog.show()
    
dump_ui(dialog, 'myui.ui')
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
05.05.2023, 17:04

Не по теме:

wrapiveco, знаешь, что до нашей эры, что после, еду можно превратить в отходы жизнедеятельности - но вот наоборот, только узкоспециализированные гурманы справятся.



А в целом есть способы генерировать *.py файлы прямо при запуске скрипта, смотри в сторону QUiLoader и прочего инструментария, точнее не помню.
1
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 14
05.05.2023, 17:34  [ТС]
Короче, похоже что способа такого нет.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.05.2023, 12:13
wrapiveco, вотъ! А если б с младых ногтей не привык пользоваться дизайнером, а выстраивал гуй ручками, проблемы бы не было. И в .py - файле подредактировать что угодно влехкую смог бы.
имхо
1
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
07.05.2023, 00:07
Цитата Сообщение от kazak Посмотреть сообщение
По основному вопросу, теже ынтырнеты советуют использовать QtDesigner.QFormBuilder, но данный способ не гарантирует 100% совпадения с оригиналом
kazak, спасибо огромное, очень познавательная вещица оказалась. Конечно, ожидать восстановления файла дизайна в работоспособном виде тут не стоит - всё-таки на вход подаётся конкретный экземпляр класса, по которому и лепится выходной файл, но пользу и в таком виде извлечь можно.

Например, запустив приведённый ниже скрипт, после недолгих бдений над содержимым полученного фвйла mbox.ui:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
from PyQt5 import QtCore, QtDesigner, QtWidgets
 
def dump_ui(widget, path):
    builder = QtDesigner.QFormBuilder()
    stream = QtCore.QFile(path)
    stream.open(QtCore.QIODevice.WriteOnly)
    builder.save(stream, widget)
    stream.close()
 
app = QtWidgets.QApplication([])
 
mbox = QtWidgets.QMessageBox()
mbox.setText('QLabel with message text.')
mbox.setInformativeText('QLabel with informative text.')
mbox.show()
dump_ui(mbox, 'mbox.ui')
sys.exit()
можно научиться с чистой совестью тотально менять оформление виджетов QMessageBox:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
from PyQt5.QtWidgets import QApplication, QStyleFactory
from PyQt5.QtWidgets import QMessageBox
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    if 'Windows' in QStyleFactory.keys():
        app.setStyle(QStyleFactory.create('Windows'))
    QMessageBox.aboutQt(None, 'About Qt')
    app.setStyleSheet(
        #'QMessageBox {background-color: PaleGoldenrod;}\n'
        'QLabel#qt_msgbox_label {font: bold; color: DarkGreen;}\n'
        'QLabel#qt_msgbox_informativelabel {font: bold; color: DarkRed;}\n'
        )
    QMessageBox.aboutQt(None, 'About Qt')
    sys.exit()
И что-то мне подсказывает, что это не единственный сюрприз
0
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 14
10.05.2023, 11:10  [ТС]
Короче не дождавшись внятного ответа пришлось капаться самому.

Кому интересно опишу вкратце:
1 делаем макет в Qt Designer и сохраняем. Назовём его например test.ui
2 сохранённый test.ui файл конвертируем через командную строку например в test.py
3 теперь наш test.py открываем в IDE, запускаем и проверяем что макет запускается
4 Делаем второй файл, например main.py в котором прописываем всю логику приложения вызывая те или иные виджеты из сконвертированого test.py файла.

Если хотим изменить наш макет, значит опять:
1 - открываем наш test.ui файл в Qt Designer, изменяем его и сохраняем
2 - опять конвертируем через командную строку в test.py
3 - в нашем втором main.py файле вызываем из сконвертированого нужные виджеты и добавляем логику.

Не в коем случае не конвертируйте test.py в test.ui потому что можно навсегда потерять макет.

Вот две ссылки, одна на русском, другая на английском. Полное объяснение приципа работы от а и до я :


https://www.youtube.com/watch?... _Q&t=1812s
https://www.youtube.com/watch?... 83&t=1760s
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.05.2023, 11:14
Цитата Сообщение от wrapiveco Посмотреть сообщение
Как я понял обратно из .py в .ui его не переделать
Цитата Сообщение от wrapiveco Посмотреть сообщение
Короче, похоже что способа такого нет.
Цитата Сообщение от wrapiveco Посмотреть сообщение
не дождавшись внятного ответа пришлось капаться самому
Цитата Сообщение от wrapiveco Посмотреть сообщение
Не в коем случае не конвертируйте test.py в test.ui
Л - Логика
0
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 14
10.05.2023, 11:46  [ТС]
Вся логика в том что внятной помощи тут не дождёшься.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.05.2023, 11:51
wrapiveco, тебе тут дали кучу дельных советов. Но вместо того, чтоб прислушаться и поблагодарить, ты проделал "титаническую работу" и пришел к выводу, что так делать не надо. О чем уже было сказано ранее в трех вариациях.
Причем, решение проблемы ржачное само по себе. С целым мануалом. Нарисовали гуй, сконвертировали. Подрисовали, сконвертировали. Исправили, сконвертировали. Гениально.
0
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 14
10.05.2023, 12:03  [ТС]
Извините я не уточнил что "Вся логика в том что внятной помощи тут не дождёшься." было адресовано @iSmokeJC

Куча дельных советов находятся в двух ссылках на ютуб, а остальное для человека который в первый раз столкнулся с такой проблемой непонимая как это работает - это рваная и несистемная информация.

Всем спосибо за помощь.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.05.2023, 12:07
Т.е. из этих дельных советов ты почерпнул алгоритм, указанный тобой в посте 7?
ОК. Продолжай учиться по этим видосам. Удачи.
0
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 14
10.05.2023, 12:21  [ТС]
Советы может то и были дельные но, я не понял о чём идёт речь.
Я столкнулся с Qt Designer пару дней назад. Сам я работал всегда в JavaFx в Scene Builder, и не мог понять принципа действий чтобы менять UI и добавлять логику. И дело тут не в учёбе по видосам, а доступному объяснению для новичка в этом деле.
Вот и всё.
0
290 / 205 / 68
Регистрация: 18.09.2019
Сообщений: 407
Записей в блоге: 58
10.05.2023, 12:33
Цитата Сообщение от wrapiveco Посмотреть сообщение
Вся логика в том что внятной помощи тут не дождёшься.
Дыкть, каков вопрос -таков ответ... Вы же задаёте вполне конкретный вопрос, никак не связанный с темой "Как надо правильно делать?"
В сгенерённом из UI питоновском файле даже предупреждение есть:
Python
1
# WARNING! All changes made in this file will be lost!
Могли бы и по окрестностям прошвырнуться PyQt5 Как бесконечно обновлять текст лейбла?, PyQt5 Переход между окнами через нажатие кнопки, PyQt5 Расчет банка. Уже знали бы, что конвертировать UI в Python совсем необязательно.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2023, 12:33
Помогаю со студенческими работами здесь

Word-овский файл сконвертировать в текстовый
Привет, кто -нить подсказать может как в асп сделать так чтобы вордовкий файл конвертировался в текстовый?

Сконвертировать текстовый файл в бинарный, переписать только положительные числа в другой бинарный файл
Бинарные файлы!! Помогите пожалуйста. Дано бинарный файл ( данные сначала в текстовом, конвертирую в бинарный). Без использования другого...

Как програмно сконвертировать doc файл в pdf?
Подскажите пожалуйста как програмно сконвертить doc файл в pdf на Net? Без всяких дополнительных окон (например:имя файла). Очень...

Создать (сконвертировать) эксель файл из строки шестнадцатиричного формата
Всем доброго времени суток. Возникла следующая задача. У меня есть большая строка (8000 символов) в шестнадцатеричном формате,...

Сконвертировать аудио-файл в последовательность байт и сохранить их в текстовый документ
можно ли создать программу, которая переводит аудио файл в байты (например .mp3 в 0100111001110) и сохраняет байты в текст док ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru