1、安装 Qt Designer
Python环境安装
pip install PyQt5
由于Qt Designer已经在Python3.5版本从PyQt5转移到了tools,因此我们还需要安装pyqt5-tools
pip install pyqt5-tools
- Win+S呼出Cornata主面板(搜索框),输入designer,如果看到跟下图类似的结果说明PyQt Designer已经被安装
2、简单使用
新建 Main Window
左侧 Widget Box 中拖拽组件
查看预览图
form ==> Preview 可以预览
格式化:
运行
Ctrl + R
3、生成Python 文件
1、保存 *.ui 在所在地文件夹中 使用命令
pyuic5 -o name.py 文件名.ui
2、运行文件
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# 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.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(811, 643)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.xuan_ze1 = QtWidgets.QPushButton(self.centralwidget)
self.xuan_ze1.setGeometry(QtCore.QRect(650, 30, 91, 41))
self.xuan_ze1.setObjectName("xuan_ze1")
self.xuan_ze2 = QtWidgets.QPushButton(self.centralwidget)
self.xuan_ze2.setGeometry(QtCore.QRect(650, 120, 91, 41))
self.xuan_ze2.setObjectName("xuan_ze2")
self.xuan_ze_weng_jian1 = QtWidgets.QGroupBox(self.centralwidget)
self.xuan_ze_weng_jian1.setGeometry(QtCore.QRect(50, 40, 91, 21))
self.xuan_ze_weng_jian1.setMinimumSize(QtCore.QSize(91, 0))
self.xuan_ze_weng_jian1.setMaximumSize(QtCore.QSize(91, 21))
font = QtGui.QFont()
font.setPointSize(12)
self.xuan_ze_weng_jian1.setFont(font)
self.xuan_ze_weng_jian1.setObjectName("xuan_ze_weng_jian1")
self.xuan_ze_weng_jian2 = QtWidgets.QGroupBox(self.centralwidget)
self.xuan_ze_weng_jian2.setGeometry(QtCore.QRect(50, 130, 91, 21))
font = QtGui.QFont()
font.setPointSize(12)
self.xuan_ze_weng_jian2.setFont(font)
self.xuan_ze_weng_jian2.setObjectName("xuan_ze_weng_jian2")
self.shuo_min1 = QtWidgets.QGroupBox(self.centralwidget)
self.shuo_min1.setGeometry(QtCore.QRect(140, 80, 451, 31))
font = QtGui.QFont()
font.setPointSize(9)
self.shuo_min1.setFont(font)
self.shuo_min1.setAutoFillBackground(False)
self.shuo_min1.setObjectName("shuo_min1")
self.shuo_ming2 = QtWidgets.QGroupBox(self.centralwidget)
self.shuo_ming2.setGeometry(QtCore.QRect(140, 170, 451, 51))
font = QtGui.QFont()
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setStrikeOut(False)
font.setKerning(False)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.shuo_ming2.setFont(font)
self.shuo_ming2.setMouseTracking(False)
self.shuo_ming2.setContextMenuPolicy(QtCore.Qt.PreventContextMenu)
self.shuo_ming2.setObjectName("shuo_ming2")
self.weng_jian_path1 = QtWidgets.QLineEdit(self.centralwidget)
self.weng_jian_path1.setGeometry(QtCore.QRect(140, 30, 491, 41))
self.weng_jian_path1.setObjectName("weng_jian_path1")
self.weng_jian_path2 = QtWidgets.QLineEdit(self.centralwidget)
self.weng_jian_path2.setGeometry(QtCore.QRect(140, 120, 491, 41))
self.weng_jian_path2.setObjectName("weng_jian_path2")
self.log = QtWidgets.QPlainTextEdit(self.centralwidget)
self.log.setGeometry(QtCore.QRect(10, 230, 781, 311))
self.log.setObjectName("log")
self.ri_zhi = QtWidgets.QGroupBox(self.centralwidget)
self.ri_zhi.setGeometry(QtCore.QRect(10, 210, 281, 21))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(75)
font.setStrikeOut(False)
font.setKerning(False)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.ri_zhi.setFont(font)
self.ri_zhi.setMouseTracking(False)
self.ri_zhi.setContextMenuPolicy(QtCore.Qt.PreventContextMenu)
self.ri_zhi.setObjectName("ri_zhi")
self.que_ding = QtWidgets.QPushButton(self.centralwidget)
self.que_ding.setGeometry(QtCore.QRect(650, 180, 91, 41))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.que_ding.setFont(font)
self.que_ding.setObjectName("que_ding")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 811, 23))
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.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.xuan_ze1.setText(_translate("MainWindow", "选择文件"))
self.xuan_ze2.setText(_translate("MainWindow", "选择文件"))
self.xuan_ze_weng_jian1.setTitle(_translate("MainWindow", "选择文件:"))
self.xuan_ze_weng_jian2.setTitle(_translate("MainWindow", "选择文件:"))
self.shuo_min1.setTitle(_translate("MainWindow", "说明1:"))
self.shuo_ming2.setTitle(_translate("MainWindow", "说明2:"))
self.ri_zhi.setTitle(_translate("MainWindow", "日志"))
self.que_ding.setText(_translate("MainWindow", "确定"))
if __name__=="__main__":
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
3、关键代码
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__=="__main__":
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
4、打开文件
m,_= QtWidgets.QFileDialog.getOpenFileNames(None,'选取文件',"D:/workspace/python/excel_text1/Yao_bu_kehu/tool2/Templates","TIFF files (*.xls*)") # 起始路径
5、按钮点击事件
self.xuan_ze1.clicked.connect(self.xuan_ze_weng_jian_open1)