Designer:Qt设计器,可以往窗体上拖控件,设计布局,快速的构建窗体,文件后缀名为.UI
py-Uic:将.ui文件编程为python代码
py-rcc:将资源文件.qrc编译成python代码
(1)采用Pyside-designer新建UI界面

(2)在PyCharm生成UI.py程序

(3)显示窗体
方法一:

importsysfromDemos.win32gui_menuimportMainWindowfromPySide6.QtWidgetsimportQApplication, QMainWindowfromLoginWindowimportUi_MainWindowfromqt_materialimportapply_stylesheetif__name__ == '__main__':app=QApplication(sys.argv)# 应用 qt_material 主题apply_stylesheet(app, theme="dark_blue.xml", extra={"danger": "#dc3545", # 取消按钮用红色"success": "#28a745", # 确认按钮用绿色"primary": "#0d6efd", # 中心按钮用蓝色 })mainwindow=QMainWindow()mwreal=Ui_MainWindow()mwreal.setupUi(mainwindow)mainwindow.show()sys.exit(app.exec())
方法二:

创建一个窗体的逻辑程序:XXImpl.py文件
fromPySide6.QtWidgetsimportQMainWindowimportLoginWindow#处理窗体的逻辑,不影响UI界面classLoginWindowImpl(LoginWindow.Ui_MainWindow):def__init__(self, window):super().__init__()self.setupUi(window)window.setWindowTitle("Login")self.textName.setText("Kevin")
main.py程序优化:
importsysfromPySide6.QtWidgetsimportQApplication, QMainWindowfromLoginWindowimportUi_MainWindowfromqt_materialimportapply_stylesheetfromLoginWindowImplimportLoginWindowImpl# 窗体显示:方式2if__name__ == '__main__':app = QApplication(sys.argv)# 应用 qt_material 主题apply_stylesheet(app, theme="dark_blue.xml", extra={"danger": "#dc3545", # 取消按钮用红色"success": "#28a745", # 确认按钮用绿色"primary": "#0d6efd", # 中心按钮用蓝色 })# 修正:QMainWindow 后面需要加括号mw = QMainWindow() # 注意这里要有括号mwImpl = LoginWindowImpl(mw) # 将窗口对象传递给实现类mw.show()sys.exit(app.exec())
1.4 引入资源文件
新建Resources.qrc,并编译称为Resources.py
<!DOCTYPE RCC><RCCversion="1.0"><qresource><filealias='logo'>./Resources/robot_icon.png</file></qresource></RCC>
主程序引用Resources
importsysfromPySide6.QtGuiimportQIconfromPySide6.QtWidgetsimportQApplication, QMainWindowfromLoginWindowimportUi_MainWindowfromqt_materialimportapply_stylesheetfromLoginWindowImplimportLoginWindowImplimportResources#这项必须引用,否则不显示# 窗体显示:方式2if__name__ == '__main__':app = QApplication(sys.argv)app.setWindowIcon(QIcon(":/logo"))# 应用 qt_material 主题apply_stylesheet(app, theme="dark_blue.xml", extra={"danger": "#dc3545", # 取消按钮用红色"success": "#28a745", # 确认按钮用绿色"primary": "#0d6efd", # 中心按钮用蓝色 })# 修正:QMainWindow 后面需要加括号mw = QMainWindow() # 注意这里要有括号mwImpl = LoginWindowImpl(mw) # 将窗口对象传递给实现类mw.show()sys.exit(app.exec())
