当前位置: 首页 > news >正文

Python的界面美化库 QDarkStyleSheet

Python的界面美化库 QDarkStyleSheet

    • 1、官网先看效果
    • 2、github地址
    • 3、动态切换主题用法
      • 效果
      • 代码

1、官网先看效果

在这里插入图片描述
在这里插入图片描述

2、github地址

https://github.com/ColinDuquesnoy/QDarkStyleSheet?tab=readme-ov-file

https://qdarkstylesheet.readthedocs.io/en/latest/screenshots.html

3、动态切换主题用法

其实就一句话sheet = qdarkstyle.load_stylesheet(qt_api='pyside6', palette=DarkPalette())

效果

在这里插入图片描述

在这里插入图片描述

代码

import sys
import qdarkstyle
from qdarkstyle.light.palette import LightPalette
from qdarkstyle.dark.palette import DarkPalette
from PySide6.QtCore import Qt
from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,QGridLayout, QLabel, QLineEdit, QTextEdit, QComboBox,QSpinBox, QCheckBox, QRadioButton, QSlider, QDateEdit,QPushButton, QToolButton, QProgressBar, QListWidget,QGroupBox, QTabWidget, QMainWindow
)class RichDemo(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("控件大观园")self.resize(700, 600)central = QWidget()main = QVBoxLayout()central.setLayout(main)self.setCentralWidget(central)# 主布局# ---------------- 顶部工具栏 ----------------tool_bar = QHBoxLayout()tool_bar.addWidget(QLabel("搜索:"))tool_bar.addWidget(QLineEdit(placeholderText="关键字..."))tool_bar.addWidget(QToolButton(text="🔍"))main.addLayout(tool_bar)# ---------------- 中间两列 ----------------mid = QHBoxLayout()# 左列:输入/选择区left = QVBoxLayout()left.addWidget(QLabel("用户信息"))left.addWidget(QLineEdit(placeholderText="姓名"))left.addWidget(QComboBox())left.itemAt(2).widget().addItems(["北京", "上海", "广州"])left.addWidget(QSpinBox())left.itemAt(3).widget().setRange(1, 120)# 日期left.addWidget(QLabel("生日"))left.addWidget(QDateEdit(calendarPopup=True))# 复选 & 单选box = QGroupBox("偏好")v2 = QVBoxLayout(box)v2.addWidget(QCheckBox("推送通知"))v2.addWidget(QRadioButton("深色"))v2.addWidget(QRadioButton("亮色"))left.addWidget(box)# 滑块left.addWidget(QLabel("亮度"))left.addWidget(QSlider(Qt.Horizontal))mid.addLayout(left)# 右列:展示区right = QVBoxLayout()right.addWidget(QLabel("实时日志"))right.addWidget(QTextEdit(readOnly=True))right.addWidget(QProgressBar(value=66))right.addWidget(QListWidget())for i in range(5):right.itemAt(3).widget().addItem(f"任务-{i}")mid.addLayout(right)main.addLayout(mid)# ---------------- 底部按钮 ----------------btn_bar = QHBoxLayout()btn_bar.addStretch()btn_bar.addWidget(QPushButton("保存"))btn_bar.addWidget(QPushButton("取消"))# 默认深色self.is_dark = True# 按钮:点击切换self.toggle_btn = QPushButton("切换到浅色")self.toggle_btn.clicked.connect(self.toggle_theme)btn_bar.addWidget(self.toggle_btn)main.addLayout(btn_bar)self.apply_theme()def apply_theme(self):"""根据当前状态应用主题"""if self.is_dark:sheet = qdarkstyle.load_stylesheet(qt_api='pyside6', palette=DarkPalette())self.toggle_btn.setText("切换到浅色")else:sheet = qdarkstyle.load_stylesheet(qt_api='pyside6', palette=LightPalette())self.toggle_btn.setText("切换到深色")QApplication.instance().setStyleSheet(sheet)def toggle_theme(self):"""切换主题并重新应用"""self.is_dark = not self.is_darkself.apply_theme()if __name__ == "__main__":app = QApplication([])window = RichDemo()window.show()sys.exit(app.exec())
http://www.dtcms.com/a/293327.html

相关文章:

  • 使用 Ansys Fluent 软件参数化工作流程对搅拌罐中的稳态涡流进行仿真
  • 大模型后训练——DPO实践
  • 博途V18软件Automation License Manager中发生了内部错误解决方法
  • Coze扣子文生图
  • 作业管理系统(Java + Swing 实现)项目案例分享
  • kafka4.0集群部署
  • Qt中QObject类的核心作用与使用
  • AG32 mcu+cpld 联合编程(概念及流程)
  • 从“点状用例”到“质量生态”:现代软件测试的演进、困局与破局
  • AUTOSAR进阶图解==>AUTOSAR_SWS_CANTransceiverDriver
  • 新版Qwen3深夜突袭:性能超越Kimi-K2、DeepSeek-V3
  • 自定义HAProxy 错误界面
  • 微调大语言模型(LLM)有多难?
  • 西门子博图FB引脚解析,与FC的区别
  • Zabbix 6.0+ 使用官方模板监控 Redis 数据库的完整配置指南
  • KIMI K2:开放式的智能体(Agentic)人工智能
  • 基于卷积神经网络与小波变换的医学图像超分辨率算法复现
  • 基础工具安装
  • API: return response as HTML table
  • Redis 八股面试题
  • 软件测试面试避坑
  • 【Unity Shader】Special Effects(十一)RgbOffset RGB偏移(UI)
  • 初识卷积神经网络CNN
  • jupyter使用
  • JAVA_ONE-NINE_ATM机案例
  • 秋招Day17 - Spring - 事务
  • 【JavaEE】认识计算机(二)
  • useOptimistic介绍和使用闭坑
  • 机器学习/归一化
  • MS523NA非接触式读卡器 IC