qt样式表设置边框_QT 样式风格 & 样式表 (QStyleSheet)

QT Style通过定义基础Style类和具体风格实现来改变全局UI。QStyle主要提供绘图函数和辅助函数,将UI元素分为基本、控制和复杂元素。使用QStyleOption传递参数,通过QPainter绘制。设置Style可通过setStyle函数或命令行参数。QT样式表(QStyleSheet)类似HTML CSS,用于快速改变UI风格。选择器包括类型选择器、子控件描述符和伪状态。样式表规则的优先级由具体选择器决定,QStyleSheetStyle作为代理处理样式表规则。
摘要由CSDN通过智能技术生成

QT Style的机制和GTK的Style机制很类似,基本上就是

定义了一个基础的Style类,在Style类里面定义一系列的绘图相关函数接口,具体风格的Style类实现了这些函数接口。

在控件的实现中,控件的绘图函数调用Style类的绘图函数接口,绘制具体的控件UI

通过使用不同的Style实现,实现全局UI风格的改变

所不同的是这些函数的的颗粒度、分类及复杂程度。此外各种局部风格调整的机制,思路也是一致的,只是在具体实现上有不同的Approach

QStyle主要函数

QStyle类提供的功能主要包括提供标准的绘图函数和一些辅助函数

绘图类函数

QStyle类将UI的组成元素分为三类

Primitive Elements : 基本元素,一些基本的,被多个控件所复用的元素,如边框,倒角,箭头等(注意这里的基本元素的概念,和点,线等绘图基本元素的概念不同)。基本元素本身不能单独纯在。

Control Elements : 控件元素,如按键,复选框等,不单是这些单独的控件,也包括复杂控件中的组成元素,如滚动条中的滑块。它和基本元素不同的地方是,它能够单独处理用户交互操作。

Complex Contro Elements : 复杂控件元素,复杂控件元素包含有子控件元素。例如combo boxes(复合选择框)等。它的用户交互响应,取决于用户操作的对象是哪个子控件。

所以,对应的有三个函数用于绘制这三类UI元素。因为不同的控件对各自的UI有不同的要求,具体控件在绘制自己的UI的时候,调用这些函数是,所需要的参数也会有不同,所以这三类函数基本都需要传参指定:

绘制元素的类型

该类型对应的具体参数(用类的方式传递,基本上绘制不同的元素都需要传递自己特定的参数类(QStyleOption的子类))

用于具体绘图的QPainter类

控件本身(可选)

理论上说,传递一个控件对象本身,就应该包含它绘图时所需要的参数,但是传递QStyleOption来指定参数也有好处,就是任何控件都可以绘制任意所需要的UI元素,不一定只有按键控件才能传参来绘制按键UI

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值