PyQt样式设计
QSS
QSS(Qt Style Sheets)即PyQt样式表,是用来定义控件外观的一种机制。QSS内部实现大量参考了CSS,但是功能没有CSS强大,主要体现在选择器少,属性少等。
使用QSS
格式:控件.setStyleSheet(str)
说明:str表示QSS样式
例子:button.setStyleSheets('background-color: red')
QSS语法
基本规则
QSS文件由一系列的“属性:值”对,使用分号间隔,使用大括号将声明包括在内。
选择器
通配选择器:*,匹配所有的控件
类型选择器:QPushButton,匹配所有QPushButton类及其子类
属性选择器:QPushButton[name='myButton'],匹配所有name是myButton的QPushButton实例,匹配的属性可以是自定义属性
类选择器:.QPushButton,匹配所有QPushButton类实例,但是不匹配子类
ID选择器:#myButton,匹配所有ID是myButton的控件,ID指的是objectName,通过setObjectName方法设置
后代选择器:QDialog QPushButton,匹配QDialog中包含的QPushButton,不论是直接还是间接包含
子选择器:QDialog > QPushButton,匹配QDialog中包含的QPushButton,要求QPushButton的直接父容器时QDialog
子控件
子控件实际上也是一种选择器,主要应用在复合组件上,典型的就是QComboBox控件,如指定QComboBox中的下拉箭头为指定图片:
QComboBox::drop-down { image : url(xxx.png) }
伪状态
QSS伪状态是以冒汗开头的一个选择表达式,如:hover表示鼠标滑过时的状态。常用的伪状态有:hover checked
例子:设置按钮的背景为不同颜色
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton styleSheet = '''
#one {
background-color: red
} #two {
background-color: green
}
''' class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__() self.button1 = QPushButton(self)
self.button1.setText('点我1')
self.button1.resize(100, 40)
self.button1.move(20, 20)
self.button1.setObjectName('one') self.button2 = QPushButton(self)
self.button2.setText('点我2')
self.button2.resize(100, 40)
self.button2.move(20, 80)
self.button2.setObjectName('two') if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.setStyleSheet(styleSheet)
w.resize(500, 300)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
注:除了自己编写样式外,网上有很多质量非常高的QSS样式,直接浏览下载就OK。
PyQt样式设计的更多相关文章
- bootstrap学习总结-css样式设计(一)
由于项目需要,所以打算好好学习下bootstrap框架,之前了解一点,框架总体不难,但涉及到的东西还是很多,想要熟练掌握它,还是要多练练. 一:bootstrap是什么? bs是什么? 即前端页面搭 ...
- php大力力 [031节] php设计系统后台菜单和样式设计
php大力力 [031节] php设计系统后台菜单和样式设计 耗掉我一整夜的时间,把后台html设计了一个,对于我这样的html白痴,实属不容易啊. 留下一点点网上查找的网页知识: 索马里论坛群发简介 ...
- pyqt样式表语法笔记(下)--原创
pyqt样式表语法笔记(下) python 启动界面 QSS pyqt 一.启动界面的设置 简单点~说话的方式简单点用一张静态图片作为程序启动界面为例. 原来的语句 python 7行 ...
- pyqt样式表语法笔记(中)--原创
pyqt样式表语法笔记(中) pyqt QSS python 样式表 一.弹窗 在日常的各种桌面软件的使用中,我们都会碰到弹窗.例如注册,登录的时候,会有相应的信息弹窗,这里就以信息收集弹窗为例进行弹 ...
- pyqt样式表语法笔记(上) --原创
pyqt样式表语法笔记(上) pyqt QSS python 样式表 因为软件课设的原因开始学习使用pyqt4,才发现原来它也有样式表,而且语法跟css基本相同,而且一些功能实现起来感觉比js要简单方 ...
- pyqt样式表语法笔记(中)
pyqt样式表语法笔记(中) pyqt QSS python 样式表 一.弹窗 在日常的各种桌面软件的使用中,我们都会碰到弹窗.例如注册,登录的时候,会有相应的信息弹窗,这里就以信息收集弹窗为例进行弹 ...
- pyqt样式表语法笔记
pyqt样式表语法笔记 pyqt QSS python 样式表 因为软件课设的原因开始学习使用pyqt4,才发现原来它也有样式表,而且语法跟css基本相同,而且一些功能实现起来感觉比js要简单方便得多 ...
- 开源方案搭建可离线的精美矢量切片地图服务-4.Mapbox样式设计
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...
- 《锋利的jQuery》读书要点笔记6——制作商城网页:结构和样式设计
第8章 用jQuery打造个性网站 做一个购物网站并用jQuery来完善.大体步骤是: 收集素材 确定网站结构 A. 文件结构,imagea文件夹用来存放将要用到的图片,styles文件夹存放CSS, ...
随机推荐
- 【Mongodb】 可复制集搭建
可复制集 replica set 概念图 可复制集需要至少3个以上的mongodb节点,其中有一个主节点promary,其余的为副本节点secondary 可复制集有三个角色: 主要成员(Primar ...
- 第三章:软件也要拼脸蛋-UI 开发的点点滴滴
常用控件 常用控件有:按钮 Button.文本显示框 TextView.图片显示框 ImageView.文本编辑框 EditText.进度条 ProgressBar.提示框 AlertDialog.进 ...
- 07.Easymock的实际应用
第一步下载对应的java包添加到工程中 并静态导入所需要的j类 import static org.easymock.EasyMock.*; 这里有的注意点 package com.fjnu.serv ...
- 硬件对同步的支持-TAS和CAS指令
目录 Test and Set Compare and Swap 使用CAS实现线程安全的数据结构. 现在主流的多处理器架构都在硬件水平上提供了对并发同步的支持. 今天我们讨论两个很重要的硬件同步指令 ...
- FastAPI 快速搭建一个REST API 服务
最近正好在看好的接口文档方便的工具, 突然看到这个, 试了一下确实挺方便 快速示例 from fastapi import FastAPI from pydantic import BaseModel ...
- MySQL统计库表大小
统计每个库每个表的大小是数据治理的其中最简单的一个要求,本文将从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况. 1.统计预估数据量 mysql数据字典库informati ...
- 117.填充每个节点的下一个右侧节点指针II
# Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'No ...
- 51单片机入门(补充)1--与C语言的交接
我写完上一个文章,发现我写的还是不够全面,所以,这篇文章将会延续上一个文章的内容,并且再次补充新的东西,如果还有什么地方需要补充,还请各位一一指出,如果你已经学过这些东西,大可以直接跳过,假如说之后有 ...
- 洛谷 P5683 【[CSPJX2019]道路拆除】
先用做的暴力,因为n最多才3000嘛,但是后来发现时间复杂度不止\(O\)(\({n}^2\)),然后就放弃了. 讲讲我的暴力+错误思路吧: 把1到s1和s2的最短路算出来,用SPFA,然后用DFS求 ...
- C#中Linq查询List与DataTable和Dictionary
查询DataTable返回List List<string> listNation = dtNation.AsEnumerable().Select(d => d.Field< ...