锋哥原创的PyQt6图书管理系统视频教程:
PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频,包括:PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~、第2讲 登录功能UI设计实现、第3讲 数据库操作工具包dbUtil.py封装等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV18t4y1R7Qp/因为主界面是需要菜单和状态栏的,所以我们新建的时候,选Main Window
设计菜单:
菜单三个主菜单,分别是 图书管理,图书类别管理,系统设置。
图书管理下面有 图书添加 图书信息管理 子菜单
图书类别管理下面有 图书类别添加 图书类别信息管理 子菜单
系统设置下面有 修改密码 安全退出 | 关于作者 锋哥招收Python学员啦 子菜单
我们把设计好的“主界面”UI文件,用PyUIC,转换成Python文件。
# Form implementation generated from reading ui file '主界面.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1420, 1148)
MainWindow.setAcceptDrops(False)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("../images/logo.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1420, 21))
self.menubar.setObjectName("menubar")
self.menu = QtWidgets.QMenu(parent=self.menubar)
self.menu.setObjectName("menu")
self.menu_2 = QtWidgets.QMenu(parent=self.menubar)
self.menu_2.setObjectName("menu_2")
self.menu_3 = QtWidgets.QMenu(parent=self.menubar)
self.menu_3.setObjectName("menu_3")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.action = QtGui.QAction(parent=MainWindow)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("../images/add.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action.setIcon(icon1)
self.action.setObjectName("action")
self.action_2 = QtGui.QAction(parent=MainWindow)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap("../images/bookManager.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action_2.setIcon(icon2)
self.action_2.setObjectName("action_2")
self.action_3 = QtGui.QAction(parent=MainWindow)
self.action_3.setIcon(icon1)
self.action_3.setObjectName("action_3")
self.action_4 = QtGui.QAction(parent=MainWindow)
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap("../images/bookTypeManager.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action_4.setIcon(icon3)
self.action_4.setObjectName("action_4")
self.action_5 = QtGui.QAction(parent=MainWindow)
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap("../images/password.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action_5.setIcon(icon4)
self.action_5.setObjectName("action_5")
self.action_6 = QtGui.QAction(parent=MainWindow)
icon5 = QtGui.QIcon()
icon5.addPixmap(QtGui.QPixmap("../images/exit.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action_6.setIcon(icon5)
self.action_6.setObjectName("action_6")
self.action_8 = QtGui.QAction(parent=MainWindow)
icon6 = QtGui.QIcon()
icon6.addPixmap(QtGui.QPixmap("../images/about.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action_8.setIcon(icon6)
self.action_8.setObjectName("action_8")
self.action_Python = QtGui.QAction(parent=MainWindow)
icon7 = QtGui.QIcon()
icon7.addPixmap(QtGui.QPixmap("../images/me.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.action_Python.setIcon(icon7)
self.action_Python.setObjectName("action_Python")
self.menu.addAction(self.action)
self.menu.addAction(self.action_2)
self.menu_2.addAction(self.action_3)
self.menu_2.addAction(self.action_4)
self.menu_3.addAction(self.action_5)
self.menu_3.addAction(self.action_6)
self.menu_3.addSeparator()
self.menu_3.addAction(self.action_8)
self.menu_3.addAction(self.action_Python)
self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menu_2.menuAction())
self.menubar.addAction(self.menu_3.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "图书管理系统"))
self.menu.setTitle(_translate("MainWindow", "图书管理"))
self.menu_2.setTitle(_translate("MainWindow", "图书类别管理"))
self.menu_3.setTitle(_translate("MainWindow", "系统设置"))
self.action.setText(_translate("MainWindow", "图书添加"))
self.action_2.setText(_translate("MainWindow", "图书信息管理"))
self.action_3.setText(_translate("MainWindow", "图书类别添加"))
self.action_4.setText(_translate("MainWindow", "图书类别信息管理"))
self.action_5.setText(_translate("MainWindow", "修改密码"))
self.action_6.setText(_translate("MainWindow", "安全退出"))
self.action_8.setText(_translate("MainWindow", "关于作者"))
self.action_Python.setText(_translate("MainWindow", "锋哥招收Python学员啦"))
我们在项目目录下,新建main.py,作为主界面模块代码,然后把上面ui文件生成的代码贴到main.py里面去,我们进行二次开发。
为了让代码能运行起来,我们需要把类继承的Object改成QMainWindow
以及加下构造方法:
# 构造方法
def __init__(self):
super(Ui_MainWindow, self).__init__()
self.setWindowFlag(QtCore.Qt.WindowType.MSWindowsFixedSizeDialogHint) # # 只显示最小化和关闭按钮
self.setupUi(self)
和前面登录一样,这个图片路径也是要修改的。
最后再加一个Main方法:
if __name__ == '__main__':
try:
app = QApplication(sys.argv)
main = Ui_MainWindow()
main.show()
sys.exit(app.exec())
except Exception as e:
print(e)
运行测试: