利⽤Python的PyQt5编写GUI界⾯教学,QT5还是⽐较难的!由于学校课程的项⽬,最近最近在学习如何利⽤Python语⾔和SQL Server编写⼀个读者图书借阅、查询管理的⼩程序。以此为契机吧,⾃⼰便开始了学习之路~
这篇⽂章主要介绍⾃⼰如何使⽤PyQt5编写GUI界⾯。
⾃⼰使⽤到的⼯具excel教程从零基础到精通全集下载
VS Code
PyQt5依赖包
Qt Designer
Python⼏种常见的GUI库
Tkinter
Tkinter是Python⾃带的量轻级的简单GUI库,使⽤也较为简单。但是Tkinter之适⽤于基础和⼩型程序的开发,界⾯的美观程度也相对有限。
安装PyQt5和Qt Designer
安装过程较为简单,只需在命令⾏窗⼝输⼊两⾏命令(在国内可以使⽤清华⼤学tuna镜像站,下载依赖包更快):
pip install PyQt5 -i pypi.tuna.tsinghua.edu/simple  #安装PyQt5
pip install PyQt5-tools -i pypi.tuna.tsinghua.edu/simple # 安装Qt Designer
如图:
**PS:若使⽤Anaconda,会省去很多环境配置步骤,这⾥只需安装PyQt5-tools即可,命令同上。**如
果想使⽤Anaconda,这⾥有详尽的配置及使⽤⽅法:Anaconda详细安装及使⽤教程(带图⽂)
PS:为了今后打开⽅便,可以创建⼀个快捷⽅式哦~
Qt Designer界⾯如下:
关于Qt Designer的使⽤⽅法,可以⾃⾏度娘,使⽤⽅法很多啦~~这⾥放⼀个教程:PyQt5速成教程导出为.py⽂件 当我们按照⾃⼰的需求,设计好了相关的界⾯后,便可以导⼊成.py⽂件啦~
设计保存后,桌⾯上会有⼀个.ui⽂件,这个就是Qt Designer⽣成的XML格式的⽂件。
这⾥,我们使⽤pyuic5这个插件转换⽂件格式。转到这个⽂件夹⽬录后,在命令⾏窗⼝输⼊如下格式命令:
google翻译怎么自动翻译pyuic5 - o ⽬标⽂件名.py 源⽂件名.ui
1
如我的这样做的:
此时,会发现,⽂件夹多了⼀个转换后的同名.py⽂件:
打开SetupUi.py⽂件,发现⾥⾯代码很长,但是已经⾃动⽣成了,这样少了很多敲代码的步骤呢~ # -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'SetupUi.ui'
#mavendependencies报错
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setAnimated(False)
self.verticalLayout = QtWidgets.alwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.tabWidget = QtWidgets.alwidget)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.formLayout = QtWidgets.QFormLayout(self.tab)
self.formLayout.setObjectName("formLayout")
self.label1 = QtWidgets.QLabel(self.tab)
self.label1.setObjectName("label1")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.label1)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.NoBrush)
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, aphicsView)
快递查询单号查询接口
self.buttonBox = QtWidgets.QDialogButtonBox(self.tab)
self.buttonBox.setStatusTip("")
self.buttonBox.setAccessibleName("")
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close|QtWidgets.QDialogButtonBox.Ok)        self.buttonBox.setCenterButtons(False)
self.buttonBox.setObjectName("buttonBox")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.buttonBox)
self.frame = QtWidgets.QFrame(self.tab)
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.frame)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.tabWidget.addTab(self.tab_2, "")
self.verticalLayout.addWidget(self.tabWidget)
mainWindow.alwidget)
mainWindow.ubar)
self.statusbar = QtWidgets.QStatusBar(mainWindow)
self.statusbar.setObjectName("statusbar")
mainWindow.setStatusBar(self.statusbar)python入门教程app
self.action = QtWidgets.QAction(mainWindow)
self.action.setCheckable(False)
self.action.setWhatsThis("")
self.action.setShortcutContext(QtCore.Qt.WindowShortcut)
self.action.setObjectName("action")
self.action_2 = QtWidgets.QAction(mainWindow)
self.action_2.setShortcutContext(QtCore.Qt.ApplicationShortcut)
self.action_2.setMenuRole(QtWidgets.QAction.QuitRole)
self.action_2.setObjectName("action_2")
结束前台进程可以使用快捷键u_options.addAction(self.action_2)
self.tabWidget.setCurrentIndex(0)
tSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = anslate
mainWindow.setWindowTitle(_translate("mainWindow", "MainWindow"))
self.tabWidget.setToolTip(_translate("mainWindow", "<html><head/><body><p><br/></p></body></html>"))        self.label1.setText(_translate("mainWindow", "学⽣图书管理系统"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("mainWindow", "Tab 1"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("mainWindow", "Tab 2"))
self.action.setText(_translate("mainWindow", "关于作者"))
self.action_2.setText(_translate("mainWindow", "退出"))
使⽤VS Code编写基础程序
使⽤VS Code打开这个⽂件夹,秉承界⾯和其他操作分离的原则,我们可以新建⼀个.py⽂件,如命名为ConnetDatabase.py,从⽽调⽤刚才⽣成的界⾯模块,新建⼀个MyWindow的⼦类,继承于QMainWindow和Ui_mainWindow⽗类,并初始化,编写构造函数即可。
最后,创建⼀个名为`import sys
from PyQt5.QtWidgets import QApplication, QMainWindow  #导⼊PyQt相关模块
from  SetupUi import *  #导⼊之前新⽣成的窗⼝模块
class MyWindow(QMainWindow, Ui_mainWindow):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyWindow()  #创建对象
myWin.show()    #显⽰窗⼝
<_())`的对象,启动即可。
运⾏后的效果如图:
⾄此,基本的窗⼝创建成功,便可以开始写后端的具体代码实现了~
你学会了吗  源码获取加哦:1136192749

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。