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.pswp.cn/news/915647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915647.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

同步本地文件到服務器上的Docker容器

同步本地文件到服務器上的Docker容器 要將本地文件同步到服務器上的Docker容器中,有幾種常用方法: 1. 使用 docker cp 命令 # 將本地文件復制到運行中的容器 docker cp /本地/文件/路徑 容器名或ID:/容器內/路徑# 示例 docker cp ./app.py mycontainer:/…

[學習] 笛卡爾坐標系的任意移動與旋轉詳解

笛卡爾坐標系的任意移動與旋轉詳解 文章目錄笛卡爾坐標系的任意移動與旋轉詳解**1. 笛卡爾坐標系基礎****2. 坐標變換原理****2.1 平移變換****2.2 旋轉變換****3. 組合變換**Python仿真與動態展示**動畫說明**:**關鍵數學原理**:1. 笛卡爾坐標系基礎 笛…

論文筆記:Parameter Competition Balancing for Model Merging

neurips 20241 intro近年來,模型融合(model merging)技術迅速發展,使得可以將多個分別針對不同任務微調后的模型直接集成為一個統一模型,從而實現多任務處理能力,而無需重新訪問原始訓練數據。然而&#xf…

逆向難度真相:僅用IDA靜態分析的極限挑戰

逆向難度真相:僅用IDA靜態分析的極限挑戰 純IDA逆向難度重排(從難到易) Python > Go > Java > E語言 > CPython (地獄級難度) IDA困境: 主邏輯完全封裝在PYZ/PYC資源中,IDA無法解析字節碼結構字符串表只顯…

vxe-table 通過配置 ajax 方式自動請求數據,適用于簡單場景的列表

vxe-table 通過配置 ajax 方式自動請求數據,適用于簡單場景的列表 當系統中很多頁面都是簡單列表時,每次都要手動去請求接口后再賦值,過程就會比較冗余繁瑣。解決方式一般就是將封裝一下。本章的方式是通過 vxe-grid 配置 ajax 來實現自動請求…

Zabbix 企業級分布式監控系統深度解析

一、監控系統核心認知1.1 監控的本質與價值監控(Monitoring)的核心是 “檢測與預防”,在 IT 運維中占據約 30% 的權重。其核心價值體現在:風險預判:通過實時監測指標異常,提前發現潛在故障(如服…

使用 .NET 6.0 的簡單 WebSocket 客戶端和服務器應用程序

幾個月前,有同事來找我,問能否用 .NET 創建一個簡單的 WebSocket 服務器(以及之后的客戶端)。據我了解,他想用它來控制對方電腦上的進程。或許對其他人也有用,所以我把它發布在這里。讓我們從服務器開始。我…

【ASP.NET Core】ASP.NET Core中Redis分布式緩存的應用

系列文章目錄 鏈接: 【ASP.NET Core】REST與RESTful詳解,從理論到實現 鏈接: 【ASP.NET Core】深入理解Controller的工作機制 鏈接: 【ASP.NET Core】內存緩存(MemoryCache)原理、應用及常見問題解析 文章目錄系列文章目錄前言一、Redis1.1 …

5.6 指令流水線 (答案見原書 P267)

5.6 指令流水線 (答案見原書 P267) 01. 下列關于流水CPU基本概念的描述中,正確的是( D )。 題目原文 下列關于流水CPU基本概念的描述中,正確的是( )。 A. 流水CPU是以空間并行性為原理構造的處理器 B. 流水…

NIO簡單介紹和運用

NIO簡單介 NIO 非阻塞IO模型,基于緩沖區(Buffer)讀寫數據,讀寫后的數據通過通道(Channel)進行傳輸,采用選擇器(Selector)管理多個通道從而實現高并發。 核心組件:1. Buffer 為一個內存數組作為數據容器,代替傳統的Inpu…

LeetCode 658.找到K個最接近的元素

給定一個 排序好 的數組 arr &#xff0c;兩個整數 k 和 x &#xff0c;從數組中找到最靠近 x&#xff08;兩數之差最小&#xff09;的 k 個數。返回的結果必須要是按升序排好的。 整數 a 比整數 b 更接近 x 需要滿足&#xff1a; |a - x| < |b - x| 或者 |a - x| |b - x| …

制作一款打飛機游戲83:炸彈機制

游戲中的炸彈系統&#xff0c;包括以下核心功能&#xff1a;炸彈爆炸效果與動畫實現炸彈傷害范圍判定機制子彈轉化為能量道具的系統炸彈使用時的無敵幀處理各種邊界情況的修復與優化技術實現細節1. 炸彈基礎系統?炸彈動畫狀態機?&#xff1a; 我們采用三階段狀態機控制炸彈效…

Linux CentOS 虛擬機升級內核至4.x以上版本

1、安裝組件 yum install -y wget && yum install -y net-tools yum groupinstall “Development Tools” yum install ncurses-devel bc openssl-devel elfutils-libelf-devel yum install -y ncurses-devel yum install -y elfutils-libelf-devel yum install -y ope…

QT跨平臺應用程序開發框架(11)—— Qt系統相關

目錄 一&#xff0c;事件 1.1 關于事件 1.2 處理事件 1.3 處理鼠標事件 1.3.1 點擊事件 1.3.2 釋放事件 1.3.3 雙擊事件 1.3.4 滾輪事件 1.3.5 注意事項 1.4 處理鍵盤事件 1.5 定時器事件 1.6 窗口移動和大小改變事件 二&#xff0c;文件操作 2.1 文件操作概述 2.2 QFile 介紹…

sqli-labs通關筆記-第11關 POST字符型注入(單引號閉合 手工注入+腳本注入兩種方法)

目錄 一、字符型注入 二、limit函數 三、GET方法與POST方法 四、源碼分析 1、代碼審計 2、SQL注入安全分析 五、滲透實戰 1、進入靶場 2、注入點分析 &#xff08;1&#xff09;SQL語句 &#xff08;2&#xff09;萬能密碼登錄 3、手工注入 &#xff08;1&#xf…

網絡安全基礎作業三

回顧web前端的代碼<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用戶登錄</title><st…

基于單片機的溫濕度報警系統設計與實現

摘 要 本項研究對溫濕度警報系統的需求進行了詳盡分析&#xff0c;并成功研制出一套以單片機為技術核心的溫濕度警報系統。該系統由硬件搭建和軟件編程兩大模塊構成。在硬件搭建方面&#xff0c;系統整合了STM32主控芯片、DS18B20溫度傳感器、濕敏電阻、按鍵組件、OLED顯示屏、…

(八)復習(拆分微服務)

文章目錄項目地址一、Ticketing模塊拆分1.1 創建web api1. 添加引用2. 添加需要的包和配置3. program.cs4. docker-compose修改項目地址 教程作者&#xff1a;教程地址&#xff1a; 代碼倉庫地址&#xff1a; 所用到的框架和插件&#xff1a; dbt airflow一、Ticketing模塊拆…

DearMom以“新生兒安全系統”重塑嬰兒車價值,攬獲CBME雙項大獎

7月16日&#xff0c;在剛剛開幕的2025 CBME中國孕嬰童展上&#xff0c;備受矚目的CBME中國孕嬰童產業獎正式揭曉。深耕嬰兒車品類的專業品牌DearMom&#xff0c;憑借其卓越的創新實力與對新生兒安全出行的深刻洞察&#xff0c;一舉摘得重量級獎項——“杰出品牌創新獎”。同時&…

瀚高數據庫開啟Oracle兼容模塊

文章目錄環境癥狀問題原因解決方案環境 系統平臺&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5 癥狀 不能使用Oracle兼容&#xff1b; 問題原因 在瀚高數據庫V45中oracle兼容模塊需要單獨開啟默認是關閉狀態。 解決方案 使用sysdba執行修改…