• pyqt5 应用的主题样式!


    在论坛上逛着逛着又发现一个看起来比较好看的pyqt5的主题样式非标准库qt_material,这是除了之前应用过程的第三个pyqt5主题样式库的使用。

    qt_material总共包含了25种主题样式,我们直接在application中使用即可,使用起来相当简单,下面从官网上面截取的官方示例图的展示。

    qt-mat官方示例图

    给发布qt_material非标准库的大佬递茶!

    1、准备

    言归正传,qt_material作为独立的python非标准库同样需要安装一下才行,采用pip的方式进行安装。

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple qt-material
    
    • 1

    我这边是已经安装好的效果,提示已经安装成功了。

    qt-mat样式安装.png

    安装完成之后,导入qt_material模块的list_themes接口,查看一下提供多少种主题样式的.xml文件。

    from qt_material import list_themes
    
    # 导入pprint接口,可以打印出更加漂亮的list列表数据
    from pprint import pprint
    
    pprint('总计主题样式:{} 种!'.format(len(list_themes())))
    pprint(list_themes())
    
    # WARNING:root:qt_material must be imported after PySide or PyQt!
    # '总计主题样式:26 种!'
    # ['dark_amber.xml',
    #  'dark_blue.xml',
    #  'dark_cyan.xml',
    #  'dark_lightgreen.xml',
    #  'dark_pink.xml',
    #  'dark_purple.xml',
    #  'dark_red.xml',
    #  'dark_teal.xml',
    #  'dark_yellow.xml',
    #  'light_amber.xml',
    #  'light_blue.xml',
    #  'light_blue_500.xml',
    #  'light_cyan.xml',
    #  'light_cyan_500.xml',
    #  'light_lightgreen.xml',
    #  'light_lightgreen_500.xml',
    #  'light_orange.xml',
    #  'light_pink.xml',
    #  'light_pink_500.xml',
    #  'light_purple.xml',
    #  'light_purple_500.xml',
    #  'light_red.xml',
    #  'light_red_500.xml',
    #  'light_teal.xml',
    #  'light_teal_500.xml',
    #  'light_yellow.xml']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    开发pyqt5应用时可以选择其中的主题样式来使用起来。

    2、使用主题

    安装完成之后,在我们的应用直接导入使用就能出现比较漂亮的样式,可视化效果杠杠的。

    这里使用我们的传统的方式来创建一个pyqt5 application应用,并选择任意一种主题样式来使用。

    # 导入pyqt5应用需要的相关的python非标准库用来编写这个测试用例的应用。
    
    from PyQt5.QtWidgets import QWidget, QApplication
    from PyQt5.QtGui import QIcon
    import sys
    
    from qt_material import apply_stylesheet
    
    
    class HelloWorldUI(QWidget):
        def __init__(self):
            super(HelloWorldUI, self).__init__()
            self.init_ui()
    
        def init_ui(self):
            self.setWindowTitle('Hello World [Python 集中营]')
            self.setWindowIcon(QIcon('python.ico'))
            # TODO:此实例为了展示apply_stylesheet主题的用法,这里就不添加详细按钮等组件了。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    编写完成之后就要使用这个qt_material模块给我这里的测试用例hello_world添加预期的主题样式显得更加的美观。

    首先将样式库导入到当前的代码块中,然后在main函数启动整个应用时直接调用。

    if __name__ == '__main__':
        app = QApplication(sys.argv)
        apply_stylesheet(app, theme='dark_teal.xml')
        hello_world = HelloWorldUI()
        hello_world.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    下面这行代码块就是我们自己添加的主题样式引用的代码块,调用时一行代码就直接完成了,是不是很方便呢?

    apply_stylesheet(app, theme='dark_teal.xml')
    
    • 1

    另外我们通过替换dark_teal.xml文件就可以完成对不同样式的引用,相当好用。其他的样式文件,我们在第一步做准备时已经使用list_themes全部列举出来了。

  • 相关阅读:
    Docker涉及的Linux命名空间、CGroups
    muduo源码剖析之TcpServer服务端
    使用Spring进行文件的上传和下载
    API安全学习 - crAPI漏洞靶场与API测试思路
    蔣鑫鴻:黄金今日多空行情预测,白银趋势分析及原油操作建议及在线解套
    Vue2.0项目自适应于不同分辨率
    (七)什么是Vite——vite优劣势、命令
    前端-vue基础24-循环结构
    【笔记】大话设计模式-89 10
    leetcode_40 组合总数II
  • 原文地址:https://blog.csdn.net/chengxuyuan_110/article/details/126715370