通常来说开发Qt的界面基本都在Qt Designer中进行的,它保存的文件为.ui,我们可以通过uic将其转变为.py文件(如何使用:Pyside6:安装及Pycharm配置_pyside6安装pycharm-CSDN博客)。
那么该如何进行加载呢?大致来说有两种方法:
- from PySide6.QtUiTools import QUiLoader
- from PySide6.QtWidgets import QApplication
- from PySide6.QtCore import QFile
- import sys
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- ui_file = QFile("ui/xxx.ui")
- ui_file.open(QFile.ReadOnly)
- loader = QUiLoader()
- window = loader.load(ui_file)
- window.show()
- sys.exit(app.exec())
这个非常简单,无需把.ui文件进行转换,但loader.load(ui_file)出来的类型都是基本类型,可能无法完成很多自定义的开发需求。所以需要扩展QUiLoader进行派生类调用,还有一些QUiLoader的方法可以使用,但本篇不讨论。
- # -*- coding: utf-8 -*-
- from PySide6.QtWidgets import QApplication
- import sys
- from MyMainWindow import MyMainWindow
- from ui import main_window_ui
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- MainWindow = MyMainWindow()
- ui = main_window_ui.Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec())
该方法需要uic进行转换为.py,此时可以直接使用一个我们的派生类进行扩展,非常方便。
真实开发环境还是使用.py开发最合适,因此更推荐第二种方法。