Как конвертировать .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()
...