文章目录
前言
最近用QT做一些界面,子页面Widget是直接继承主Widget的,而主Widget的各种颜色背景啥的都是用的别人的CSS,导致自己new的新Widget各种背景、字体颜色不对,搞了蛮久,记录下踩坑记录。PS:我用的是纯代码
这一篇修改设置对象是QTableView,不过其他组件也大同小异
一、setStyleSheet简介
查了很多博客之后只有一个结论:
没有什么介绍和demo比得上官网
QT Style Sheets是一个很有利的工具,允许定制窗口的外观,此外还可以用子类QStyle来完成,他的语法很大比重来源于html的CSS,但是适用于窗口。
简单来说就是这个函数用于设置组件窗口的外观
二、setStyleSheet使用方法
1.基本句法
样式表语法:样式表语法基本和HTML CSS语法一致。样式表包含了样式规则序列,样式规则由一个<selector
>和<declaration
>组成,<selector
>指定哪些窗口将会被这些规则影响,<declaration
>指定哪些属性将会被设定在窗口上,例如QPushButton
{color:red}。
在上面的规则中,QPushButton
是<selector
>,{color:red}是<declaration
>,这个规则指定QPushButton
和他的子类将使用红色作为前景颜色,就是字体颜色,并且对大小写没有分别,对于color,ColoR,COLOR是一样的。
几个<selector
>可以同时被列出,使用逗号",“来分开各个<selector
>,例如:QPushButton
, QLineEdit
, QComboBox
{ color: red };<declaration
>部分包含多对属性值 对,用{}来括起来,使用分号来分开各个属性。例如QPushButton
{ color: red; font-family: Arial; line-height: 26px;”}
代码如下(示例):
Qwidget->setStyleSheet(QPushButton,QLineEdit,QPlainTextEdit
{
"color: blue;"
"background-color: yellow;"
"selection-color: yellow;"
"selection-background-color: blue;"