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

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

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

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

Я делаю именно это с 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), см. Этот ответ: https://stackoverflow.com/a/14877624/532513