Qt多边形填充/不填充绘制

devtools/2024/11/8 21:54:53/

 

1 填充多边形绘制形式 

void GraphicsPolygonItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{Q_UNUSED(option);Q_UNUSED(widget);//painter->setPen(pen());      // 设置默认画笔//painter->setBrush(brush());  // 设置默认画刷// 创建一个线性渐变的笔刷,// 不仅会根据设定的画笔(pen())绘制多边形的轮廓,还会使用当前设置的笔刷(即线性渐变)来填充多边形内部区域。QColor c = brushColor();QLinearGradient result(boundingRect().topLeft(), boundingRect().topRight());result.setColorAt(0, c.dark(150));result.setColorAt(0.5, c.light(200));result.setColorAt(1, c.dark(150));painter->setBrush(result);// 设置画笔并绘制多边形painter->setPen(pen());  // 默认画笔参数,绘制多边形边缘painter->drawPolygon(m_points);// 如果项被选中,绘制选中高亮效果if (option->state & QStyle::State_Selected)qt_graphicsItem_highlightSelected(this, painter, option);
}

 2 不填充

只通过画笔,绘制多边形轮廓

void GraphicsPolygonItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{Q_UNUSED(option);Q_UNUSED(widget);// 创建一个红色的画笔,并设置线宽为1QPen pen;pen.setColor(Qt::red);pen.setWidth(1);// 设置画笔并绘制多边形painter->setPen(pen);painter->setBrush(Qt::NoBrush);  // 不填充painter->drawPolygon(m_points);// 如果项被选中,绘制选中高亮效果if (option->state & QStyle::State_Selected)qt_graphicsItem_highlightSelected(this, painter, option);
}


http://www.ppmy.cn/devtools/132406.html

相关文章

PHP+MySQL开发的一套招聘管理系统开发案例源码功能介绍

‌人才招聘系统‌,也称为招聘管理系统(HRMS)的细化分支,是一种基于互联网的招聘管理平台。它旨在协助企业以更高效的方式完成外部人才的吸引、识别、筛选及录用工作。在国外,这种系统常被称为Applicant Tracking Syste…

【FastAdmin】在页面中使用layui,以此引申使用颜色选择器示例

目录 1.首先在backend-init.js中定义依赖配置,路径:public/assets/js/backend-init.js 2.然后再你需要使用layui的地方引用即可 3.一个颜色选择器的示例 html完整示例: js完整示例: 好看的layui使我喜欢他,但是在…

鸿蒙next打包流程

目录 下载团结引擎 添加开源鸿蒙打包支持 打包报错 路径问题 安装DevEcoStudio 可以在DevEcoStudio进行打包hap和app 包结构 没法直接用previewer运行 真机运行和测试需要配置签名,DevEcoStudio可以自动配置, 模拟器安装hap提示报错 安装成功,但无法打开 团结1.3版本新增工具…

华为HarmonyOS打造开放、合规的广告生态 - 开屏广告

场景介绍 开屏广告是一种在应用启动时且在应用主界面显示之前需要被展示的广告。您需要预先为App设计一张开屏默认的Slogan图片,确保在未获得到开屏广告之前展示默认的Slogan,提供良好的用户体验。 开屏广告分为全屏开屏广告、半屏开屏广告&#xff0c…

基于vue+neo4j 的中药方剂知识图谱可视化系统

前言 历时一周时间,中药大数据R02系统中药开发完毕,该系统通过scrapy工程获取中药数据,使用python pandas预处理数据生成知识图谱和其他相关数据,利用vuespringbootneo4jmysql 开发系统,具体功能请看本文介绍。 简要…

校园综合服务小程序ssm+论文源码调试讲解

第2章 开发环境与技术 校车购票微信小程序的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对校车购票微信小程序用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的,是经常变动的&#xf…

计算机网络:网络层 —— IP 多播技术

文章目录 基本概念IP多播地址和多播组 IP多播的类型硬件多播将IPv4多播地址映射为多播MAC地址 基本概念 多播(Multicast,也称为组播)是一种实现“一对多”通信的技术,允许一台或多台主机(多播源)发送单一数…

encodeURIComponent和decodeURIComponent的使用场景

实战项目存在的问题:URL中存在有特殊字符,尤其是# 。在 URL 中有特殊的意义,它表示 URL 的 锚点(fragment identifier),用于指定页面中的一个特定位置。通常,# 后面的内容被认为是锚点标识符&am…