项目地址:https://github.com/Wanderson-Magalhaes/Modern_GUI_PyDracula_PySide6_or_PyQt6
demo
#0 安装和运行
用PyCharm导入项目后,自动弹出窗口为我创建virtualenv,很神奇!
安装好依赖(目前只发现要安装PySide6):
pip install PySide6
然后运行即可
python main.py
#1 初步改造
B站有个UP主,做了相应的说明,地址如下:
https://www.bilibili.com/video/BV1i24y1X7pV?p=3&vd_source=93a7086bf07d42229c12cfd87d80b3aa
初步改造的目标有:
-
修改软件标题
-
修改作者和版本号
-
禁用部分不需要使用的菜单
#1.1 修改软件标题
修改软件标题,只需要修改main.py
里的description
。这里还有个title
,但还未找到用途。
# main.py
...
class MainWindow(QMainWindow):
def __init__(self):
...
# APP NAME
# ///////////////////////////////////////////////////////////////
title = "PyDracula - Modern GUI"
description = "PyDracula APP - Theme with colors based on Dracula for Python."
#1.2 修改作者和版本号
作者和版本号在软件的底部,要修改的话,在modules/ui_main.py
里进行修改(最后2行)
# modules/ui_main.py
class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
self.creditsLabel.setText(QCoreApplication.translate("MainWindow", u"By: Wanderson M. Pimenta", None))
self.version.setText(QCoreApplication.translate("MainWindow", u"v1.0.3", None))
#1.3 修改默认图标
修改默认图标的操作暂无需要,看资料是替换images/images/
下的png文件。修改好了后,需要通过下述命令重新编译下,才能生效:
pyside6-rcc resources.qrc -o resources_rc.py
# 1.4 禁用侧边栏
先修改侧边栏功能,如要修改保存功能,在main.py
里找到
class MainWindow(QMainWindow):
def buttonClick(self):
if btnName == "btn_save":
print("Save BTN clicked!")
# QMessageBox.information(self, "提示", "该功能尚未实现", QMessageBox.Yes)
原来的逻辑是print
语句,在console里打印一句“Save BTN clicked!”。
注释部分为我自己添加的,当点击时会出现一个弹窗,提示功能尚未实现。
同理,可在buttonClick
函数里禁用其他地方的功能。
class MainWindow(QMainWindow):
def buttonClick(self):
# GET BUTTON CLICKED
btn = self.sender()
btnName = btn.objectName()
# SHOW HOME PAGE
if btnName == "btn_home":
widgets.stackedWidget.setCurrentWidget(widgets.home)
UIFunctions.resetStyle(self, btnName)
btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet()))
# SHOW WIDGETS PAGE
if btnName == "btn_widgets":
widgets.stackedWidget.setCurrentWidget(widgets.widgets)
UIFunctions.resetStyle(self, btnName)
btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet()))
# SHOW NEW PAGE
if btnName == "btn_new":
widgets.stackedWidget.setCurrentWidget(widgets.new_page) # SET PAGE
UIFunctions.resetStyle(self, btnName) # RESET ANOTHERS BUTTONS SELECTED
btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet())) # SELECT MENU
#2 实现新增功能
为了简单期间,暂不做新增按钮的设计,而是复用右侧菜单栏的“message”功能。首先要修改message的显示。
#2.1 修改message的图标和现实文字
找到modules/ui_main.py
,修改self.btn_message
功能:
# modules/ui_main.py
class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
self.btn_message.setText(QCoreApplication.translate("MainWindow", u"Message", None))
在这里,可以修改“message”至想要的,比如“change message”。
然后在main.py
将btn_message
,
# main.py
class MainWindow(QMainWindow):
def __init__(self):
# LEFT MENUS
widgets.btn_home.clicked.connect(self.buttonClick)
widgets.btn_widgets.clicked.connect(self.buttonClick)
widgets.btn_new.clicked.connect(self.buttonClick)
widgets.btn_save.clicked.connect(self.buttonClick)
widgets.btn_message.clicked.connect(self.buttonClick)
如上图所示,在最后一栏添加一行代码,将btn_message
绑定至self.buttonClick
函数里。
接下来修改self.buttonClick
函数
## main.py
def buttonClick(self):
if btnName == "btn_message":
print("Button Message clicked!")
在这里添加一个,进行修改,完善想要实现的功能即可。
原文始发于微信公众号(Know Why It):学习PyDracula
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/276303.html