学习PyDracula

项目地址:https://github.com/Wanderson-Magalhaes/Modern_GUI_PyDracula_PySide6_or_PyQt6


demo

学习PyDracula
Dark Theme
学习PyDracula
Light Theme

#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.pybtn_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

(0)
python学霸的头像python学霸bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!