当前位置: 首页 > news >正文

Qt扫盲-QBrush理论使用总结

Q 理论使用总结

  • 一、概述
    • 1. 填充模式
    • 2. 笔刷颜色
    • 3. 纹理
  • 二、 Qt::GlobalColor

一、概述

QBrush类定义了由 QPainter 绘制的形状的填充模式。画笔有样式、颜色、渐变和纹理。

brush style() 使用Qt::BrushStyle 枚举定义填充模式。默认的笔刷样式是 Qt::NoBrush(取决于你如何构造一个笔刷)。

1. 填充模式

这种风格告诉QPainter 不要填充形状。填充的标准样式是Qt::SolidPattern。可以在使用适当的构造函数创建笔刷时设置样式,此外,setStyle()函数还提供了在笔刷构造完成后更改样式的方法。

在这里插入图片描述

2. 笔刷颜色

brush color()定义了填充图案的颜色。颜色可以是Qt的预定义颜色之一,Qt::GlobalColor,或任何其他自定义的QColor。可以分别使用color()和setColor()函数检索和修改当前设置的颜色。

gradient() 定义了当当前样式为 Qt::LinearGradientPattern、Qt::RadialGradientPattern 或 Qt::ConicalGradientPattern 时 使用的渐变填充。渐变刷是通过在创建QBrush时将QGradient作为构造函数参数来创建的。

Qt提供了三种不同的梯度:QLinearGradient, QConicalGradient和QRadialGradient——它们都继承了QGradient。

QRadialGradient gradient(50, 50, 50, 50, 50);
gradient.setColorAt(0, QColor::fromRgbF(0, 1, 0, 1));
gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0));QBrush brush(gradient);

渐变的效果就像Qt Designer 里面的东西。
在这里插入图片描述

3. 纹理

texture()定义当前样式为Qt::TexturePattern时使用的像素图。您可以通过在创建笔刷时提供像素图或使用setTexture()来创建带有纹理的笔刷。

注意,不管之前的样式设置如何,应用setTexture()会使style() == Qt::TexturePattern。同样,如果样式是渐变的,调用setColor()也不会有什么不同。如果样式是Qt::TexturePattern样式,除非当前纹理是QBitmap,否则情况也是如此。

如果画笔是完全不透明的,isOpaque() 函数返回true,否则返回false。画笔被认为是不透明的如果:

  • color()的alpha分量是255。
  • 它的纹理()没有alpha通道,也不是QBitmap。
  • gradient()中的颜色都有一个255的alpha分量。

要指定线条和轮廓的样式和颜色,使用QPainter的笔结合Qt::PenStyle和Qt::GlobalColor:
在这里插入图片描述

 QPainter painter(this);painter.setBrush(Qt::cyan);painter.setPen(Qt::darkCyan);painter.drawRect(0, 0, 100,100);painter.setBrush(Qt::NoBrush);painter.setPen(Qt::darkGreen);painter.drawRect(40, 40, 100, 100);

注意,在默认情况下,QPainter在绘制形状时渲染轮廓(使用当前设置的笔)。使用painter.setPen(Qt::NoPen)来禁用此行为。

有关绘画的更多信息,请参阅绘画系统。

二、 Qt::GlobalColor

这个是Qt预定义的一些颜色

名称含义
Qt::white3White (#ffffff)
Qt::black2Black (#000000)
Qt::red7Red (#ff0000)
Qt::darkRed13Dark red (#800000)
Qt::green8Green (#00ff00)
Qt::darkGreen14Dark green (#008000)
Qt::blue9Blue (#0000ff)
Qt::darkBlue15Dark blue (#000080)
Qt::cyan10Cyan (#00ffff)
Qt::darkCyan16Dark cyan (#008080)
Qt::magenta11Magenta (#ff00ff)
Qt::darkMagenta17Dark magenta (#800080 )
Qt::yellow12Yellow (#ffff00)
Qt::darkYellow18Dark yellow (#808000)
Qt::gray5Gray (#a0a0a4)
Qt::darkGray4Dark gray (#808080)
Qt::lightGray6Light gray (#c0c0c0)
Qt::transparent19a transparent black value (i.e., QColor(0, 0, 0, 0))
Qt::color000 pixel value (for bitmaps)
Qt::color111 pixel value (for bitmaps)

相关文章:

Qt扫盲-QBrush理论使用总结

Q 理论使用总结 一、概述1. 填充模式2. 笔刷颜色3. 纹理 二、 Qt::GlobalColor 一、概述 QBrush类定义了由 QPainter 绘制的形状的填充模式。画笔有样式、颜色、渐变和纹理。 brush style() 使用Qt::BrushStyle 枚举定义填充模式。默认的笔刷样式是 Qt::NoBrush(取决于你如何…...

互联网Java工程师面试题·Java 面试篇·第三弹

目录 39、JRE、JDK、JVM 及 JIT 之间有什么不同? 40、解释 Java 堆空间及 GC? 41、你能保证 GC 执行吗? 42、怎么获取 Java 程序使用的内存?堆使用的百分比? 43、Java 中堆和栈有什么区别? 44、“ab”…...

如何使用VSCode将iPad Pro转化为功能强大的开发工具?

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. iPad通过软件远程vscode6.1 创建TCP隧道 7. ipad远…...

将用友U8的数据可视化需要哪些工具?

将金蝶U8的数据可视化需要一个奥威BI数据可视化工具,以及一套专为用友U8打造的标准化BI数据分析方案。 奥威BI SaaS平台:一键链接用友U8,立得报表 别的BI软件围绕用友U8的数据做可视化:1、准备配置环境;2、下载安装配…...

DOS常用指令

一、dir显示目录 dir命令是Windows系统常用的命令,用于显示目录的文件和子目录的列表。如果不使用参数,此命令将显示磁盘的卷标和序列号,然后是磁盘上的目录和文件列表(包括它们的名称以及每个文件最后修改的日期和时间&#xff…...

【Pycharm中python调用另一个文件类或者函数】

Pycharm中python调用另一个文件类或者函数 本文主要介绍了Pycharm中python调用另一个文件类或者函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 文章目录 Pycha…...

pycharm操作git、前后端项目上传到gitee

pycharm操作git 之前用命令做的所有操作,使用pychrm点点就可以完成 克隆代码 上方工具栏Git ⇢ \dashrightarrow ⇢ Clone ⇢ \dashrightarrow ⇢ 填写地址(http、ssh) 提交到暂存区,提交到版本库,推送到远程 直接…...

jmeter监听每秒点击数(Hits per Second)

jmeter监听每秒点击数(Hits per Second) 下载插件添加监听器执行压测,监听结果 下载插件 点击选项,点击Plugins Manager (has upgrades),点击Available Plugins,搜索5 Additional Graphs安装。 添加监听…...

RabbitMQ 消息模型

参考 ​​​​​​【RabbitMQ】RabbitMQ架构模型_rabbitmq结构模型-CSDN博客 之前的学习都只是知道名字,但并没有真正的理解,每次看还是不懂,所以今日理解透 ! RabbitMQ 收发消息过程如下: 首先从消费者开始&#xff1…...

STM32cubemx对FreeRTOS的适配(工程模板配置)

文章目录 前言一、工程的创建二、什么是CMSIS三、STM32cubemx生成的FreeRTOS工程分析总结 前言 本篇文章将带大家使用STM32cubemx对FreeRTOS进行工程模板的配置。 一、工程的创建 1.开始工程的创建: 2.芯片型号选择: 3.修改时钟为TIM8: …...

SpringSecurity+ Oauth2.0+JWT 0-1

这里写目录标题 准备工作准备SQL添加用户添加依赖准备UserInfoUserMapperUserServiceUserServiceImpl配置SpringDataUserDetailsService 授权服务器:AuthorizationServer配置客户端详细信息管理令牌定义TokenConfig定义AuthorizationServerTokenServices 令牌访问端…...

Echart图表收起/展开后无法重新渲染实现自适应(亲测有效)-开发bug总结5

问题描述: 后台管理系统,左侧的菜单栏是可以展开/收起的,默认是展开,此时页面上的图表加载正常,如果收起后再展开,页面底部就会出现滚动轴,图表没有重新绘制。 网上也查了很多方法。基本都是通…...

互联网Java工程师面试题·Java 面试篇·第二弹

目录 15、什么是不可变对象(immutable object)?Java 中怎么创建一个不可变对象? 16、我们能创建一个包含可变对象的不可变对象吗? 17、Java 中应该使用什么数据类型来代表价格? 18、怎么将 byte 转换为 Str…...

【ARM裸机】ARM入门

1.ARM成长史 2.ARM的商业模式和生态系统 ARM只设计CPU,但是不生产CPU 3.为什么使用三星:S5PV210 4.各种版本号 0. ARM和Cortex Cortex就是ARM公司一个系列处理器的名称。比如英特尔旗下处理器有酷睿,奔腾,赛扬。ARM在最初的处理器…...

webGL编程指南 第三章 矩阵旋转三角形rotatedTriangle_Matrix

我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 :git 接着 上一节中 接着做平移的转化。在本次的案例案例中主要是xy的坐标变量相加,同时传递个给相…...

【常用的Git命令】

Git是一个版本控制系统,它拥有众多的命令。以下是一些常用的Git命令: 配置相关命令: git config --global user.name "Your Name":设置用户姓名git config --global user.email "youremailexample.com":设置用…...

cnn 直线检测笔记

目录 mlsd直线检测: ULSD-ISPRS曲线检测 划线标注工具: 可视化标注代码: mlsd直线检测: mlsd_pytorch...

【Edabit 算法 ★☆☆☆☆☆】 Return Something to Me!

【Edabit 算法 ★☆☆☆☆☆】 Return Something to Me! strings language_fundamentals Instructions Write a function that returns the string "something" joined with a space " " and the given argument a. Examples giveMeSomething(“is bett…...

【Redis】数据结构之dict

目录 dict的基本结构dict的相关操作函数底层通用的之查找插入key-value对应该放入ht表的哪个槽rehash过程 dict的基本结构 typedef struct dict {dictType *type;void *privdata;dictht ht[2];long rehashidx; /* rehashing not in progress if rehashidx -1 */unsigned long…...

curl命令服务器上执行http请求

1. 现在本地使用postman生成curl命令 注意: 将ip改成127.0.0.1,端口是实际服务运行的端口 curl --location --request POST http://127.0.0.1:63040/content/course/list?pageNo1&pageSize2 \ --header Content-Type: application/json \ --data-raw {"courseName&q…...

【LeetHOT100】环形链表Ⅱ——寻找环的入口(Java多解法详解)

一、题目描述 142. 环形链表 II 给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 null。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始&…...

Video-Downloader:打破平台壁垒,轻松收藏你喜爱的每一帧视频

Video-Downloader:打破平台壁垒,轻松收藏你喜爱的每一帧视频 【免费下载链接】Video-Downloader 下载youku,letv,sohu,tudou,bilibili,acfun,iqiyi等网站分段视频文件,提供mac&win独立App。 项目地址: https://gitcode.com/gh_mirrors/…...

Cursor Pro 激活工具:多语言自动化解决方案深度解析

Cursor Pro 激活工具:多语言自动化解决方案深度解析 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial…...

OAK-D-Pro上手实测:用Python+DepthAI SDK跑通第一个SLAM Demo(保姆级避坑指南)

OAK-D-Pro实战指南:从零搭建SLAM开发环境的完整避坑手册 当你第一次拆开OAK-D-Pro相机的包装时,那种兴奋感我至今记忆犹新——但随之而来的是一连串的困惑:驱动装不上、环境冲突、示例代码跑不通...这正是我写下这篇指南的原因。不同于市面上…...

终极Visual C++运行库解决方案:一键修复Windows依赖问题

终极Visual C运行库解决方案:一键修复Windows依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在安装或运行某些软件时遇到"缺…...

别再被弹窗烦了!Windows 10/11 UAC组策略保姆级调优指南(附注册表对照表)

彻底驯服UAC弹窗:Windows系统管理员的高效配置手册 每次安装软件时那个突然弹出的蓝色窗口,或是执行关键操作时打断思路的安全确认——UAC(用户帐户控制)确实是Windows系统安全的重要防线,但对于需要频繁进行系统操作的…...

基于深度学习的YOLOv8智慧交通识别 车辆轨迹识别 目标检测研究分析软件 智能辅助驾驶交通分析

项目功能 交通物体检测与实例分割 本项目基于YOLOv8框架,能够对交通物体进行检测。对图片能检测到物体并用锚框进行标注展示,对于视频则是对每一帧进行物体检测分析,同样使用锚框进行标注,最终生成的物体检测视频能实时追踪物体并…...

你的W25Q128驱动稳定吗?聊聊HAL库SPI读写W25Q128的三大坑与优化技巧

W25Q128驱动稳定性实战:HAL库SPI的三大隐形陷阱与工业级优化方案 当你以为W25Q128驱动已经完美运行时,是否遇到过这些诡异现象:系统运行几天后突然数据错乱?高速连续写入时SPI总线莫名其妙崩溃?或是芯片偶尔进入"…...

保姆级教程:在Ubuntu 20.04上用Qt 5.12.8从源码编译QGC地面站(附常见编译错误解决)

保姆级教程:在Ubuntu 20.04上用Qt 5.12.8从源码编译QGC地面站(附常见编译错误解决) 第一次尝试在Ubuntu上编译QGroundControl时,我花了整整两天时间解决各种依赖和版本冲突问题。从Qt版本不匹配到子模块初始化失败,再到…...

终极iOS设备支持解决方案:如何快速解决Xcode版本兼容性问题

终极iOS设备支持解决方案:如何快速解决Xcode版本兼容性问题 【免费下载链接】iOSDeviceSupport All versions of iOS Device Support 项目地址: https://gitcode.com/gh_mirrors/ios/iOSDeviceSupport iOSDeviceSupport是一个专门解决Xcode设备调试兼容性问题…...