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

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

05.05.2023, 16:17. Показов 5316. Ответов 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
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,305
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru