Qt学习笔记14.界面的样式 (Qt Stylesheet) (待续)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt学习笔记14.界面的样式 (Qt Stylesheet) (待续)相关的知识,希望对你有一定的参考价值。

一、StyleSheet的基本用法

StyleSheet : 样式单

Qt中支持StyleSheet技术,将界面的样式定义分离开来。采用和html/CSS类似的形式,使用一个文本文件来单独定义样式。

通常,用于定义界面样式的StyleSheet称为“皮肤”


StyleSheet的定义:

定义一个StyleSheet,前面是类名(称为Selector),大括号内是属性定义,支持/**/注释语法

例如:

/* 以GBK保存 */
QLineEdit
{
    background: yello;
}        // 注意末尾没有分号

QPushButon, QLineEdit
{
    color: blue;
}                // 注意末尾没有分号


StyleSheet的使用:

1、设置全局样式:

可以在main函数中,直接给QApplication设置样式,此样式为全局样式

QString style = "QPushbutton{ color: blud; }";
a.setStyleSheet(style);        //a是  QApplication 类型的对象


2、设置窗口样式:

可以给某个窗口对象设置样式

QString style = "QPushbutton{ color: blud; }";
w.setStyleSheet(style);        //w是窗体



样式的重复定义:

1、对同一个对象调用多次setStyleSheet,则后设置的生效,先前的设置全部丢弃。(替换)

2、下层的样式覆盖上层(叠加)

全局样式(上层) >>> 窗口样式 >>> 子窗口样式(下层)

结果:相同的属性发生覆盖,其他部分保留


皮肤文件:

通常,把样式的内容存放到一个文本文件里,然后在程序打开时加载,此文本称为皮肤文件

// 在main中读取皮肤文件的内容
QString style = readfile("skin.css");
a.setStyleSheet(style);

要注意文件的编码,在中文的Windows上编辑文本文件时,默认的是GBK编码



二、StyleSheet语法——Selector


以上是关于Qt学习笔记14.界面的样式 (Qt Stylesheet) (待续)的主要内容,如果未能解决你的问题,请参考以下文章

QT基础学习笔记 Demo04

QT学习笔记(14) 定时器类DTimer的使用

QML ProgressBar 无效的属性名称“样式”

Qt Creator 源码学习笔记 05,菜单栏是怎么实现插件化的?

QT学习笔记——ui的认识

Qt5学习笔记之串口助手四:增加16进制/ASCII切换周期发送