使用 Qt designer
- 1、配置Qt designer外部工具
- 2、Qt designer(Qt 设计师)使用
- 2.1 创建保存文件ui
- 2.2 `pyuic5.exe 工具` 转化成为py文件
- 2.3 直接导入UI文件
- 2、qrc资源管理器
1、配置Qt designer外部工具
实质就是
Qt\bin
工具中designer.exe
请查看 PyQt5开始入门、pyQt5 + pycharm 已经说明
2、Qt designer(Qt 设计师)使用
2.1 创建保存文件ui
文件
apptest.ui
这个就是PyQt5
的布局文件;
文件apptest.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>MainWindow</class><widget class="QMainWindow" name="MainWindow"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>MainWindow</string></property><widget class="QWidget" name="centralwidget"/><widget class="QMenuBar" name="menubar"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>22</height></rect></property></widget><widget class="QStatusBar" name="statusbar"/></widget><resources/><connections/>
</ui>
2.2 pyuic5.exe 工具
转化成为py文件
可以使用
pyuic5.exe 工具
转化成为apptest.py文件
(查看 PyQt5开始入门、pyQt5 + pycharm):
pyuic5 apptest.ui -o apptest.py
文件apptest.py
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'apptest.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(800, 600)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
添加main入口使用:
if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())
2.3 直接导入UI文件
uic.loadUi(r'C:\Users\Administrator\Desktop\apptest.ui', self)
导入UI文件
from PyQt5.uic import loadUi
- UI文件中
<widget class="QMainWindow" name="MainWindow">
默认self
;对应代码class Ui_MainWindow(QMainWindow)
- 其他widget可直接通过
name
使用,例如self.statusbar.showMessage('Ready')
再举例添加菜单栏self.menubar.addAction(openAct)
#!/usr/bin/python3
# -*- coding: utf-8 -*-import sysfrom PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QFileDialog
from PyQt5.uic import loadUiclass Ui_MainWindow(QMainWindow):def __init__(self):super().__init__()loadUi(r'C:\Users\Administrator\Desktop\apptest.ui', self)self.setupUi()def setupUi(self):print("setupUI")self.resize(800, 600)self.statusbar.showMessage('Ready')self.menuBarUI()QtCore.QMetaObject.connectSlotsByName(self)def menuBarUI(self):openAct = QAction(self.menubar)openAct.setCheckable(False)openAct.setObjectName('openFileAction')openAct.triggered.connect(self.opendir)openAct.setText('打开')self.menubar.addAction(openAct)def opendir(self):dir = QFileDialog.getExistingDirectory(self, r"Open Directory","./",QFileDialog.ShowDirsOnly| QFileDialog.DontResolveSymlinks)print(str(dir))if __name__ == '__main__':app = QApplication(sys.argv)ui = Ui_MainWindow()ui.show()sys.exit(app.exec_())
2、qrc资源管理器
**qrc文件:**更多查看 PyQt5 资源管理
<!DOCTYPE RCC>
<RCC version="1.0"><qresource><file>images/icon.ico</file></qresource>
</RCC>