Как конвертировать .ui в .py?

Я хочу конвертировать ui файл в py файл Я использую pyside2 и python 3.7 Я знаю что в pyside есть pysideuic

from pysideuic import compileUi
pyfile = open("C:\1f.py", 'w')
compileUi("C:\Login.ui", pyfile, False, 4,
False)
pyfile.close()

а что в pyside2? Просто постоянно использовать

C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts\pyside2-uic.exe -g python -o С:\test1.py C:\test.ui

Очень неудобно


Ответы (2 шт):

Автор решения: Alexander Chernin

Вы можете автоматизировать этот процесс. Например, добавляя ui-файлы в массив и затем генерируя py-файлы

    def ui2py():
        uis = ['file_1.ui', 'file_2.ui']
        for _ui in uis:
            output, ext = path.splitext(_ui)
            system('pyside2-uic {} > {}'.format(_ui, 'ui_' + output + '.py'))

функцию можно вызвать в файле main.py в самом начале

# This Python file uses the following encoding: utf-8

def ui2py():
    ...

ui2py()

import sys
from PySide2.QtWidgets import QApplication
from Gui.MainWindow import MainWindow

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())
→ Ссылка
Автор решения: S. Nick

Класс QUiLoader позволяет автономным приложениям динамически создавать пользовательские интерфейсы во время выполнения, используя информацию, хранящуюся в файлах пользовательского интерфейса или указанные в путях подключаемых модулей. Больше https://doc.qt.io/qtforpython/PySide6/QtUiTools/QUiLoader.html

import os
from PySide2 import QtCore, QtWidgets, QtUiTools

class TestWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(TestWindow, self).__init__(parent)
        
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(os.path.abspath("ui/mainwindow.ui"))
        file.open(QtCore.QFile.ReadOnly)
        self.window = loader.load(file, parent)
        file.close()
        self.window.show()

...
→ Ссылка