1、QSS基础-设置同类控件样式
'''
QSS基础:Qt Style Sheet
Qt样式表
用于设置控件的样式和风格(比如控件的背景色,字体颜色,字体大小等)
和CSS的功能比较相似,功能相似
''' from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import * import sys
class BasicQSS(QWidget):
def __init__(self):
super(BasicQSS,self).__init__()
self.setWindowTitle("QSS控件设置样式基础")
self.b1=QPushButton("按钮1")
self.b2=QPushButton("按钮2") VBox=QVBoxLayout()
VBox.addWidget(self.b1)
VBox.addWidget(self.b2)
self.setLayout(VBox) if __name__=="__main__":
app=QApplication(sys.argv)
p=BasicQSS()
#定义所有button控件的样式背景色为红色
#也可以称为控件选择器
qssStyle='''
QPushButton{
  background-color:red
  }
'''
    p.setStyleSheet(qssStyle)
p.show()
sys.exit(app.exec_())

2、QSS选择器设置特定控件样式
'''
QSS基础:Qt Style Sheet
设置某些特定的控件样式
''' from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import * import sys
class QSSselector(QWidget):
def __init__(self):
super(QSSselector,self).__init__()
self.setWindowTitle("QSS选择器设置特定控件样式")
self.b1=QPushButton("按钮1")
self.b2=QPushButton("按钮2")
self.b3=QPushButton("按钮3") #设置控件2的属性,通过属性来进行特定设置样式
self.b1.setProperty("name","bt1")
self.b2.setProperty("name", "bt2") VBox=QVBoxLayout()
VBox.addWidget(self.b1)
VBox.addWidget(self.b2)
VBox.addWidget(self.b3)
self.setLayout(VBox) if __name__=="__main__":
app=QApplication(sys.argv)
p=QSSselector() #控件选择器设置特定控件的属性
qssStyle='''
QPushButton[name="bt2"]{ color:yellow;
height:120;
font-size:60px
}
QPushButton[name="bt1"]{ color:black;
height:60;
font-size:30px
}
'''
p.setStyleSheet(qssStyle)
p.show()
sys.exit(app.exec_())

3、QSS子控件选择器
'''
举例:QComboBox 选择主控件的子控件样式-即一部分组成
''' from PyQt5.QtWidgets import *
import sys
class QSSselector(QWidget):
def __init__(self):
super(QSSselector,self).__init__()
self.setWindowTitle("QSS子控件选择器")
combox=QComboBox(self) #设置下拉列表的控件名称
combox.setObjectName("myComboBox") combox.addItem("Windows")
combox.addItem("Linux")
combox.addItem("Mac OS X") combox.move(50,50)
self.setGeometry(250,200,320,150) if __name__=="__main__":
app=QApplication(sys.argv)
p=QSSselector() #子控件选择器设置下来箭头的图像形式
qssStyle='''
QComboBox#myComboBox::drop-down{
image:url(./image/1.png)
}
'''
p.setStyleSheet(qssStyle)
p.show()
sys.exit(app.exec_())

4、QSS设置方法为标签和按钮添加背景图
'''
使用Qss设定标签和按钮的背景图
''' from PyQt5.QtWidgets import *
import sys class labelback(QWidget):
def __init__(self):
super(labelback,self).__init__()
self.setWindowTitle("设置标签背景图")
self.resize(512,288) label=QLabel(self)
label.setToolTip("这是一个文本标签")
#为label添加背景图
label.setStyleSheet("QLabel{border-image:url(./image/1.png);}")
label.setFixedWidth(400) #设置最大宽度
label.setFixedHeight(200) b1=QPushButton(self)
b1.setObjectName("b1")
b1.setMaximumSize(100,100) #设置最大宽度与最高宽度
b1.setMinimumSize(48,48) #为button设置背景图(b1为显示背景图,b1:Pressed是指按下时图片)
style='''
#b1{
border-radius:4px;
background-image:url("./image/0.jpg");
}
#b1:Pressed{
background-image:url("./image/1.png");
}
'''
b1.setStyleSheet(style) v=QVBoxLayout()
v.addWidget(label)
v.addWidget(b1)
v.addStretch() #添加一下拉伸,随着两控件的大小来进行基于左上角自动伸缩
self.setLayout(v) if __name__=="__main__":
app=QApplication(sys.argv)
p=labelback()
p.show()
sys.exit(app.exec_())

5、装载QSS文件
'''
在PyQt5中动态装载CSS文件
'''
from PyQt5.QtWidgets import *
import sys #定义动态读取qss文件类
class common:
@staticmethod
def readQSS(style):
with open(style,"r") as f:
return f.read() class main(QMainWindow): def __init__(self):
super(main,self).__init__()
self.setWindowTitle("动态加载QSS文件")
self.resize(477,258)
b1=QPushButton("装载QSS文件按钮")
b1.setToolTip("提示文本")
v=QVBoxLayout()
v.addWidget(b1)
b1.clicked.connect(self.onclick)
self.setLayout(v) w=QWidget(self)
self.setCentralWidget(w)
w.setLayout(v) def onclick(self):
stylefile="./style.qss" #本地QSS文件
c=common()
qssstyle=c.readQSS(stylefile)
p.setStyleSheet(qssstyle) if __name__=="__main__":
app=QApplication(sys.argv)
p=main()
p.show()
sys.exit(app.exec_())
#本地QSS文件style.qss文件代码
QMainWindow{
border-image:url(./image/1.png);
}
QToolTip{
border:1px solid rgb(45,45,45);
background:white;
color:red
}

												

QSS基础-设置控件样式的更多相关文章

  1. UWP入门(四)--设置控件样式

    原文:UWP入门(四)--设置控件样式 官方定义:可以使用 XAML 框架通过多种方式自定义应用的外观. 通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 可分享至不同e ...

  2. UWP 设置控件样式四种方法

    1.隐式方法,通过仅指定 Style 的 TargetType.(设置全部的Button样式) <Page.Resources > <Style TargetType="B ...

  3. C#:设置控件样式(待补充)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  4. qt 设置程序控件样式

    1. 以资源文件的形式设置控件样式 QFiledata(QString(":/style.qss")); QStringqssFile; if(data.open(QFile::R ...

  5. WPF:DataTemplateSelector设置控件不同的样式

    原文 WPF:DataTemplateSelector设置控件不同的样式 最近想实现这么个东西,一个ListBox, 里面的ListBoxItem可能是文本框.下拉框.日期选择控件等等. 很自然的想到 ...

  6. IrisSkin 单独控件样式设置 不使用皮肤样式

    可以设置控件的Tag为this.skinEngine1.DisableTag [DefaultValue()] [Description("If you do not want skin t ...

  7. WPF设置控件获取键盘焦点时的样式FocusVisualStyle

    控件获取焦点除了用鼠标外,可以通过键盘来获取,比如Tab键或者方向键等,需要设置控件获取键盘焦点时的样式,可以通过设置FrameworkElemnt.FocusVisualStyle属性, 因为几乎所 ...

  8. WPF设置全局控件样式

    原文:WPF设置全局控件样式 方法: 在资源文件APP.XAML中添加如下资源 <Application x:Class="_360UI.App" xmlns="h ...

  9. WP8.1学习系列(第二十五章)——控件样式

      XAML 框架提供许多自定义应用外观的方法.通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visua ...

随机推荐

  1. 题解【洛谷P1074】[NOIP2009]靶形数独

    题面 题解 一开始写了一个朴素的数独,无任何剪枝优化,得到了\(55\)分的好成绩. 就是这道题加一个计算分数. 代码如下(\(\mathrm{55\ pts}\)): /************** ...

  2. 利用数据结构排序的priority_queue

    考虑以下几个问题: 将一个序列排序 某神仙: \(\mathtt{sort}\) !!! 每次取出最前面的两个数 某神仙: \(a_i\) 和 \(a_{i+1}\) 啊!! 相加,再加入序列 某神仙 ...

  3. 为什么hadoop中用到的序列化不是java的serilaziable接口去序列化而是使用Writable序列化框架

    继上一个模块之后,此次分析的内容是来到了Hadoop IO相关的模块了,IO系统的模块可谓是一个比较大的模块,在Hadoop Common中的io,主要包括2个大的子模块构成,1个是以Writable ...

  4. docker删除镜像时报错解决办法

    报错信息 [root@kvm ~]# docker rmi 4950a54ede5a Error response from daemon: conflict: unable to delete 49 ...

  5. html()和append()

    html()方法会替换原有内容,append() 方法在被选元素的结尾插入指定内容.prepend() 方法在被选元素的开头插入指定内容 appendChild() 方法向节点添加最后一个子节点.pr ...

  6. gcc 简单使用笔记

    编译生成可执行文件(bin文件): gcc test.c //默认生成可执行文件名为a.out 指定可执行文件名: gcc -o test test.c 编译生成目标文件(.o文件): gcc -c ...

  7. 搭建离线下载aria2 树莓派下搭建,以及图形化界面AriaNG

    请参考链接 https://www.htcp.net/3652.html https://www.zrj96.com/post-296.html Aria2自动更新BT Tracker服务器列表的方法 ...

  8. Linux01——常用命令

    帮助命令: man 一行一行显示 ,按下enter键就向下显示一行,按q退出 --help 全部显示 日期类:date ,cal 显示当前目录:pwd 切换目录:cd(***重点***) cd .. ...

  9. 深度学习之反向传播算法(BP)代码实现

    反向传播算法实战 本文仅仅是反向传播算法的实现,不涉及公式推导,如果对反向传播算法公式推导不熟悉,强烈建议查看另一篇文章神经网络之反向传播算法(BP)公式推导(超详细) 我们将实现一个 4 层的全连接 ...

  10. C/C++ 传递信息给Java

    #开始 今天有人问我C++怎么给Java传递消息 大概需求是 用C++写了一个窗口 需要把编辑框里面的东西传递给Java做处理 #解决过程 我现在能想到的有三个简单的方法 1. Socket编程 通过 ...