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

qt QBrush详解

1、概述

QBrush是Qt框架中的一个基本图形对象类,它主要用于定义图形的填充模式。QBrush可以用于填充如矩形、椭圆形、多边形等形状,也可以用于绘制背景等。通过QBrush,可以设置填充的颜色、样式(如实心、渐变、纹理等)、以及渐变的具体参数(如渐变方向、颜色分布等)。QBrush的使用极大地丰富了Qt图形界面的视觉效果。

2、重要方法

QBrush类提供了一系列重要的方法来设置和获取其属性,以下是一些关键的方法:

  • setColor(const QColor &color):设置QBrush的填充颜色。颜色可以是Qt预定义的颜色常量,也可以是任意QColor对象。
  • color() const:获取QBrush当前的填充颜色。
  • setStyle(Qt::BrushStyle style):设置QBrush的填充样式。Qt::BrushStyle是一个枚举类型,包括实心、斜线、网格等多种样式。
  • style() const:获取QBrush当前的填充样式。
  • setGradient(const QGradient &gradient):设置QBrush的渐变填充。渐变可以是线性渐变、锥形渐变或径向渐变。
  • gradient() const:获取QBrush当前的渐变填充。
  • setTexture(const QPixmap &pixmap):设置QBrush的纹理填充。纹理可以是任何QPixmap对象。
  • texture() const:获取QBrush当前的纹理填充。

3、重要属性
  • Qt::NoBrush:无画刷。
  • Qt::SolidPattern:纯色填充。
  • Qt::DenselPattern 到 Qt::Dense7Pattern:不同密度的点阵填充。
  • Qt::HorPattern:水平线填充。
  • Qt::VerPattern:垂直线填充:
  • Qt::CrossPattern:交叉线填充。
  • Qt::BDiagPattern:45度左斜线填充。
  • Qt::FDiagPattern:45度右斜线填充,
  • Qt::DiagCrossPattern:交叉斜线填充。
  • Qt::LinearGradientPattern:线性渐变填充。
  • Qt::RadialGradientPattern:径向渐变填充。
  • 0t::ConicalGradientPattern:锥形渐变填充。
  • Qt::TexturePattern:纹理图像填充。
#include <QApplication>
#include <QMainWindow>
#include <QWidget>
#include <QPainter>class BrushDemoWidget : public QWidget
{
protected:void paintEvent(QPaintEvent *event) override{Q_UNUSED(event);QPainter painter(this);// 设置纯色画刷QBrush solidBrush(Qt::blue);painter.setBrush(solidBrush);painter.drawRect(10, 10, 100, 100);// 设置线性渐变画刷QLinearGradient linearGradient(200, 10, 300, 110);linearGradient.setColorAt(0, Qt::red);linearGradient.setColorAt(1, Qt::yellow);QBrush linearGradientBrush(linearGradient);painter.setBrush(linearGradientBrush);painter.drawRect(200, 10, 100, 100);// 设置图案画刷QBrush patternBrush(Qt::BDiagPattern);patternBrush.setColor(Qt::green);painter.setBrush(patternBrush);painter.drawRect(10, 150, 100, 100);// 设置纹理画刷QPixmap texturePixmap(":/images/texture.jpg");QBrush textureBrush(texturePixmap);painter.setBrush(textureBrush);painter.drawRect(200, 150, 100, 100);}
};int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建主窗口QMainWindow mainWindow;mainWindow.setWindowTitle("QBrush Example");mainWindow.resize(400, 300);// 创建自定义绘图控件BrushDemoWidget *brushDemoWidget = new BrushDemoWidget;mainWindow.setCentralWidget(brushDemoWidget);// 显示主窗口mainWindow.show();return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/475147.html

相关文章:

  • Excel函数CUnique连接合并指定区域的唯一值
  • 机械革命屏幕设置为RGB
  • 开源项目-投票管理系统
  • LeetCode 104.二叉树的最大深度
  • Android启动流程_Init阶段
  • 萤火虫算法优化BILSTM神经网络多输入回归分析
  • 在线QP(QuotedPrintable)编码解码工具
  • 【已解决】cra 配置路径别名 @ 后,出现 ts 报错:找不到模块“@/App”或其相应的类型声明。ts(2307)
  • leetcode-643. 子数组最大平均数 I
  • 论分布式架构设计及其实现
  • 基于BP神经网络的手写体数字图像识别
  • QT——串口调试助手
  • 国产操作系统卖疯了!最营收7.84亿,最低1.5亿
  • 2024年华为OD机试真题-最小的调整次数-Python-OD统一考试(E卷)
  • React.js教程:从JSX到Redux的全面解析
  • 二叉苹果树
  • 【大数据学习 | kafka】producer的参数与结构
  • 2. 从服务器的主接口入手
  • nginx上传文件超过限制大小、响应超时、反向代理请求超时等问题解决
  • 第16课 核心函数(方法)
  • 【工具变量】中国制造2025试点城市数据集(2000-2023年)
  • vscode makfile编译
  • (四)PostgreSQL数据库操作示例
  • Docker-微服务项目部署
  • 测试Bug提交报告模板
  • MybatisPlus - 核心功能
  • 小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(6)嵌入式系统总线及通信接口
  • 利用字典对归一化后的数据0误差还原
  • HarmonyOS:UIAbility组件概述
  • 12寸半导体厂说的华夫区是什么意思