Как вы загружаете файлы .ui на классы python с помощью PySide?

Я использовал PyQt довольно долгое время, и все это время я использовал его, был довольно последовательный шаблон программирования.

  • Используйте Qt Designer для создания файла .ui.
  • Создайте класс python того же типа, что и виджет, созданный в файле .ui.
  • При инициализации класса python используйте uic для динамической загрузки файла .ui в класс.

Есть ли способ сделать что-то подобное в PySide? Я прочитал документацию и примеры, и ближайшая вещь, которую я смог найти, был примером калькулятора, который предварительно визуализировал файл .ui на код python, что является самым старым способом сделать это в PyQt (зачем испечь его на python когда вы можете просто проанализировать ui?)

Ответ 1

Я делаю именно это с PySide.:)

Вы используете этот https://gist.github.com/cpbotha/1b42a20c8f3eb9bb7cb8 (оригинал Sebastian Wiesner был в https://github.com/lunaryorn/snippets/blob/master/qt4/designer/pyside_dynamic.py, но исчез) - это переопределяет PySide.QtUiTools.QUiLoader и поставляет новый метод loadUi(), чтобы вы могли сделать это:

class MyMainWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        loadUi('mainwindow.ui', self)

Когда вы создаете экземпляр MyMainWindow, у него будет пользовательский интерфейс, который вы создали с помощью Qt Designer.

Если вам также нужно использовать пользовательские виджеты ( "Содействовать" в Qt Designer), см. этот ответ: fooobar.com/info/90961/...