PySide2+Python:qdarkstyle 暗黑风格样式库

该博客介绍了如何在PySide2的GUI应用中使用qdarkstyle库来创建暗黑风格的交互界面。通过导入qdarkstyle库并调用load_stylesheet方法,可以将GUI界面转换为黑色主题,同时展示了代码示例,包括添加标签、输入框、下拉列表等控件,并展示了应用暗黑主题前后的效果对比。此外,还展示了如何设置控件的样式和布局。
摘要由CSDN通过智能技术生成

qdarkstyle:用了这个库之后,可以使我们的GUI 交互界面变成黑色的


使用方法:

  1. 先导入 qdarkstyle 库

    pip install qdarkstyle 
    
  2. 在 _ _ init _ _ 文件加入样式设置语句

    self.window.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
    
  3. 没有添加暗黑样式之前:
    在这里插入图片描述

  4. 添加了暗黑样式之后【部分控件变成了圆角】:
    在这里插入图片描述

Demo 代码调试:
# -*- -*- -*-  -*-  -*-  -*-  -*-  -*-  
# -*- coding: utf-8 -*-                                         
#  @Time   : 2021/01/25
#  @File    : demo.py
# -*- -*- -*-  -*-  -*-  -*-  -*-  -*-
# 导入应用程序
import qdarkstyle
from PySide2.QtWidgets import QApplication
# 导入应用窗口
from PySide2.QtWidgets import QMainWindow
# 导入应用按钮
from PySide2.QtWidgets import QPushButton
# 导入应用纯文本的编辑框
from PySide2.QtWidgets import QPlainTextEdit
# 导入:弹出对话框,弹窗展示运行结果
from PySide2.QtWidgets import QMessageBox
# 导入控件名称文案
from PySide2.QtWidgets import QLabel
# 导入下拉列表控件类
from PySide2.QtWidgets import QComboBox
# 导入纯展示文本框类
from PySide2.QtWidgets import QTextBrowser
# 导入单行输入框控件类
from PySide2.QtWidgets import QLineEdit
# 导入数字输入框控件类
from PySide2.QtWidgets import QSpinBox
# 导入执行窗口的图表样式
from PySide2.QtGui import QIcon
# 导入文案颜色显示类
from PySide2.QtGui import QColor

class Demo():

    def __init__(self):

        ''' 一、首先需要创建一个最外层的窗口 '''
        # 创建一个主窗口对象【只做定制处理,并非直接展示】
        self.window = QMainWindow()
        # resize:控制窗口的尺寸(宽,高)
        self.window.resize(651, 629)
        # move:打开后窗口出现在显示器的位置
        self.window.move(300, 310)
        # Title:打开后的窗口的标题栏文案
        self.window.setWindowTitle('Demo工具')

		# 加载暗黑风格的 Style 样式
        self.window.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
        
        ''' 二、新增选项的标签提示文案:QLabel '''
        # 创建一个文本框的文案显示控件
        self.QLabel_1 = QLabel(self.window)
        # Text:页面展示的文案
        self.QLabel_1.setText("请输入您的姓名:")
        # setStyleSheet:页面展示的文案布局
        # 1、background:背景色,最后一位是透明度
        # 2、font-family:字体类型,常见的:YouYuan,Microsoft Yahei
        # 3、font-size:字体大小
        # 4、color:字体颜色
        self.QLabel_1.setStyleSheet('''
                    background: rgba(255, 255, 255,0); 
                    font-family: YouYuan;
                    font-size: 12pt;
                    color: green;
                    ''')
        # move: 文字显示在纯文本控件的窗格位置
        self.QLabel_1.move(10, 20)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QLabel_1.resize(200, 41)

        # 创建一个单选框的文案显示控件
        self.QLabel_2 = QLabel(self.window)
        # Text:页面展示的文案
        self.QLabel_2.setText("请选择您的性别:")
        # Text:页面展示的文案布局
        self.QLabel_2.setStyleSheet('''
                    font-size: 12pt;
                    color: red;
                    ''')
        # move: 文字显示在纯文本控件的窗格位置
        self.QLabel_2.move(10, 80)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QLabel_2.resize(200, 41)

        # 创建一个单选框的文案显示控件
        self.QLabel_3 = QLabel(self.window)
        # Text:页面展示的文案
        self.QLabel_3.setText("请输入您的年龄:")
        # move: 文字显示在纯文本控件的窗格位置
        self.QLabel_3.move(10, 140)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QLabel_3.resize(200, 41)

        # 创建一个多行文本框的文案显示控件
        self.QLabel_4 = QLabel(self.window)
        # Text:页面展示的文案
        self.QLabel_4.setText("操作结果:")
        # move: 文字显示在纯文本控件的窗格位置
        self.QLabel_4.move(40, 310)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QLabel_4.resize(171, 41)


        ''' 三、新增一个单行输入框控件:QLineEdit'''
        self.QLineEdit = QLineEdit(self.window)
        # Text:纯文本控件的默认提示文案(输入后会覆盖,清空内容后重现)
        self.QLineEdit.setPlaceholderText("请输入...")
        # setStyleSheet:页面展示的文案布局
        self.QLineEdit.setStyleSheet('''
                    font-size: 12pt;
                    color: Purple;
                    ''')
        # move: 文字显示在纯文本控件的窗格位置
        self.QLineEdit.move(200, 20)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QLineEdit.resize(200, 41)

        ''' 四、新增一个下拉选择的控件:QComboBox '''
        self.comboBox_sex = QComboBox(self.window)
        # 下拉选项的选项文案
        self.comboBox_sex.addItems(['请选择','男','女','保密'])
        # move: 文字显示在纯文本控件的窗格位置
        self.comboBox_sex.move(200, 80)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.comboBox_sex.resize(200, 41)

        ''' 五、新增一个数字输入框的控件:QSpinBox  '''
        self.QSpinBox_age = QSpinBox(self.window)
        # move: 文字显示在纯文本控件的窗格位置
        self.QSpinBox_age.move(200, 140)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QSpinBox_age.resize(200, 41)

        ''' 六、新增一个多行输入框的控件:QTextBrowser  '''
        self.QTextBrowser_result = QTextBrowser(self.window)
        # Text:纯文本控件的默认提示文案(输入后会覆盖,清空内容后重现)
        self.QTextBrowser_result.setPlaceholderText("这里会显示运行结果")
        # move: 文字显示在纯文本控件的窗格位置
        self.QTextBrowser_result.move(40, 360)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.QTextBrowser_result.resize(561, 201)

        ''' 七、新增一个点击按钮控件:QPushButton  '''
        # 在组件窗口里面新增一个按钮功能
        self.button_create = QPushButton('检测\n性格', self.window)
        # setStyleSheet:页面展示的文案布局
        self.button_create.setStyleSheet('''
                    font-size: 20pt;
                    color: blue;
                    ''')
        # move: 按钮显示在窗格的位置
        self.button_create.move(480, 50)
        # resize:控制文本输入窗口的尺寸(宽,高)
        self.button_create.resize(150, 100)
        # 按钮点击怎么触发事件呢?加一段 clicked 代码,调用事件方法
        self.button_create.clicked.connect(self.click)

    # 定义一个点击方法
    def click(self):
        send_name = self.QLineEdit.text()
        # 弹窗展示打印结果,包含三个参数:(窗口,窗口标题,窗口内容)
        QMessageBox.about(self.window, "运行结果", "代 码 执 行 完 毕")
        # 结果返回框打印结果
        self.QTextBrowser_result.setStyleSheet('''
                                    font-size: 20pt;
                                    color: black;
                                    ''')
        self.QTextBrowser_result.append("{}是一只舔狗".format(send_name))


# 创建一个实例化对象,QApplication 提供了整个图形界面程序的底层管理功能
app = QApplication([])
# 创建一个实例化对象,接受定义的所有参数配置
Demo = Demo()
# 展示窗口及其所有的控件
Demo.window.show()
# 进入事件处理循环(没有此段代码,窗口将会一闪而过)
app.exec_()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值