Qt5/QPainter/画家

 

目录

 

1.绘制文字

1.1案例

1.2代码 

2.画线 

2.1案例

 2.2代码

3.绘制矩形

3.1代码

4.绘制椭圆和圆

4.1椭圆

4.2圆

5.圆弧

5.1案例:

5.2代码 

6.扇形

6.1案例 

6.2代码:

7.更改绘画的颜色和粗细

7.1案例 

​编辑 7.2代码


1.绘制文字

1.1案例

通过三种不同的绘制方式进行绘制

1.2代码 

void Widget::paintEvent(QPaintEvent *event)
{//实列化一个QPainter对象,this表示在Widget的这个窗口进行会话QPainter painter(this);painter.setPen(Qt::blue);//设置画笔的颜色painter.setFont(QFont("Arial", 20));//设置字体,"Arial"为字体类型,30为要设置的字体大小//在窗口的坐标(x:40,y:60)的位置绘制"小张"//drawText(int x, int y, const QString &text)painter.drawText(40,60,"小张");//在矩形rect(窗口),的中间位置(Qt::AlignCenter),绘制"Qt案例"//drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)//drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)painter.drawText(rect(), Qt::AlignCenter, "Qt案例");//在窗口的坐标(x:150,y:200)的位置建立一个长100宽100的矩形,在这个矩形的中间绘制"Qt5","Qt::AlignCenter"表示在矩形的中间绘制//drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)painter.drawText(150,200,100,100,Qt::AlignCenter, "Qt5");
}

2.画线 

2.1案例

通过3种不同的方法绘制同一种线 

 

 2.2代码

void Widget::paintEvent(QPaintEvent *event)
{//实列化一个QPainter对象,this表示在Widget的这个窗口进行会话QPainter painter(this);painter.setPen(Qt::blue);//设置画笔的颜色painter.setFont(QFont("Arial", 20));//设置字体,"Arial"为字体类型,30为要设置的字体大小painter.drawLine(10,200,300,20);painter.drawLine(QLine(10,200,300,20));painter.drawLine(QPoint(10,200),QPoint(300,20));
}

3.绘制矩形

3.1代码

    方式1:QRect rectangle(200,100,220,120);//在(200,100)的位置实列化一个长220矩形宽120的矩形painter.drawRect(rectangle);方式2:painter.drawRect(200,100,220,120);//直接绘制

4.绘制椭圆和圆

4.1椭圆

    //方法1QRect rectangle(200,100,220,120);painter.drawEllipse(rectangle);//在坐标(300,300)为中心处绘制painter.drawEllipse(300,300,200,100);

4.2圆

当椭圆的短轴的长度与长轴长的长度一样时即可画圆

   //方法1QRect rectangle(200,100,120,120);painter.drawEllipse(rectangle);//在坐标(300,300)为中心处绘制painter.drawEllipse(300,300,200,200);

5.圆弧

起始角和伸缩角必须以1/16度指定,即一个完整的圆等于5760(16*360),可以理解为Qt将我们认知中的1°又细分了16份。 角度的正值表示逆时针方向,负值表示顺时针方向。零度在3点钟方位。

5.1案例:

5.2代码 

    QRect rectangle(200,100,220,180);painter.drawArc(rectangle,30*16,120*16);

6.扇形

扇形绘制与弧形类似

6.1案例 

6.2代码:

    QRect rectangle(200,100,220,180);painter.drawPie(rectangle,30*16,120*16);

7.更改绘画的颜色和粗细

7.1案例 

 7.2代码

void Widget::paintEvent(QPaintEvent *event)
{//实列化一个QPainter对象,this表示在Widget的这个窗口进行会话QPainter painter(this);//使加粗后的线条看起来更光滑painter.setRenderHint(QPainter::Antialiasing,true);QPen pen(Qt::red,7);//7为线条宽度即宽度为7个像素点painter.setPen(pen);QRect rectangle(200,100,220,180);painter.drawPie(rectangle,30*16,120*16);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇保姆式centos/unbantu安装docker

前言: 本章节分别演示centos虚拟机,unbantu虚拟机进行安装docker。 上一篇介绍:docker一键部署springboot项目 一:centos 1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest do…

fetch API和XHR

文章目录 一、基本写法1. XMLHttpRequest(XHR)2. Fetch API 二、兼容性1. XMLHttpRequest(XHR)2. Fetch API 三、Promise支持1. XMLHttpRequest(XHR)2. Fetch API 四、请求响应1. XMLHttpRequest&#xff0…

Photoshop(PS)——人像磨皮

1.新建一个文件,背景为白色,将图片素材放入文件中 2.利用CtrlJ 复制两个图层出来,选择第一个拷贝图层,选择滤镜---杂色---蒙尘与划痕 3.调整一下数值,大概能够模糊痘印痘坑,点击确定。 4.然后选择拷贝2图层…

Elasticsearch retrievers 通常与 Elasticsearch 8.16.0 一起正式发布!

作者:来自 Elastic Panagiotis Bailis Elasticsearch 检索器经过了重大改进,现在可供所有人使用。了解其架构和用例。 在这篇博文中,我们将再次深入探讨检索器(retrievers)。我们已经在之前的博文中讨论过它们&#xf…

CH02_泛型

第2章:泛型 本章目标 理解泛型的概念 掌握泛型方法的定义与使用 掌握泛型类的定义与使用 掌握泛型接口的定义与使用 本章内容 泛型的概念 ​ 泛型(generic)是C# 2.0推出的新语法,并不是语法糖,它是专门为处理多段代码在不同的数据类型…

《设计模式》创建型模式总结

目录 创建型模式概述 Factory Method: 唯一的类创建型模式 Abstract Factory Builder模式 Prototype模式 Singleton模式 最近在参与一个量化交易系统的项目,里面涉及到用java来重构部分vnpy的开源框架,因为是框架的搭建,所以会涉及到像…

c++类对象练习

#include <iostream> #include <cstring>using namespace std;class mystring {char* buf; public:mystring(); //构造函数mystring(const char* str); //构造函数void show(); //输出函数void setmystr(const mystring str); //设置函数const char* getmystr() co…

CH03_反射

第3章&#xff1a;反射 本章目标 掌握反射的原理 熟悉反射的基本运用 本章内容 反射是什么 C# 编译运行过程 首先我们在VS点击编译的时候&#xff0c;就会将C#源代码编译成程序集 程序集以可执行文件 (.exe) 或动态链接库文件 (.dll) 的形式实现 程序集中包含有Microsoft …

多品牌摄像机视频平台EasyCVR视频融合平台+应急布控球:打造城市安全监控新体系

在当今快速发展的智慧城市和数字化转型浪潮中&#xff0c;视频监控技术已成为提升公共安全、优化城市管理、增强应急响应能力的重要工具。EasyCVR视频监控平台以其强大的多协议接入能力和多样化的视频流格式分发功能&#xff0c;为用户提供了一个全面、灵活、高效的视频监控解决…

深入理解 Maven 生命周期与常用命令:从编译到安装

Maven 是 Java 项目管理中不可或缺的工具之一&#xff0c;其核心功能包括依赖管理、项目构建和发布等。本文将围绕 Maven 的生命周期及常用命令&#xff0c;解析从项目编译到安装的完整流程&#xff0c;并结合实际案例帮助读者更好地掌握 Maven 的使用。 1. Maven 生命周期概述…

数据结构 (3)线性表的概念及其抽象数据类型定义

一、线性表的概念 定义&#xff1a;线性表是指具有相同数据类型的n个数据元素的有限序列。可以表示为L(a1,a2,…,ai,…,an)&#xff0c;其中a1是第一个元素&#xff0c;称为表头&#xff1b;an是最后一个元素&#xff0c;称为表尾。 特点&#xff1a; 有序性&#xff1a;线性表…

Java基础——继承和多态

目录 一、继承 继承的定义&#xff1a; 继承的基本用法&#xff1a; 如何调用父类的方法&#xff1f; 二、多态 多态性的好处 多态中的强制类型转换&#xff1a; 包的命名规则——域名倒叙 一、继承 继承的定义&#xff1a; 继承是面向对象编程中的一种机制&#xff0c…

【Zookeeper】一、Zookeeper的使命

摩尔定律揭示了集成电路每18个月计算性能就会增加一倍。 Zookeeper以Fast Paxos算法为基础。 在一个大型应用中&#xff0c;经常会按照功能边界将应用分为多个模块&#xff0c;这些模块可以分别独立部署。而要完成某一项具体的功能&#xff0c;不能仅靠其中一个模块&#xff…

vue3中父div设置display flex,2个子div重叠

在Vue 3中&#xff0c;若要设置父div使用flex布局并且使得2个子div重叠&#xff0c;可以在父div上使用样式display: flex以及position: relative&#xff0c;然后在子div上使用position: absolute来定位。 <template><div class"parent"><div class&…

Elasticsearch面试内容整理-分析与映射

在 Elasticsearch 中,分析(Analysis)和映射(Mapping)是数据处理和存储的核心部分。它们共同决定了数据如何被解析、存储以及如何被有效地搜索和查询。以下是关于分析和映射的详细介绍。 分析(Analysis) 分析是将文本数据转换为可以被 Elasticsearch 搜索的索引格式的过程…

播放器开发之ffmpeg 硬件解码方案

硬件编解码的概念 硬件编解码是⾮CPU通过烧写运⾏视频加速功能对⾼清视频流进⾏编解码&#xff0c;其中⾮CPU可包括GPU、FPGA或者 ASIC等独⽴硬件模块&#xff0c;把CPU⾼使⽤率的视频解码⼯作从CPU⾥分离出来&#xff0c;降低CPU的使⽤负荷&#xff0c;使得平台能 ⾼效且流畅…

Go 编译代码-分平台编译

要针对 Mac, Linux, 和 Windows 编译单个 main.go 文件&#xff0c;可以使用 Go 的交叉编译功能&#xff0c;通过设置环境变量 GOOS 和 GOARCH 来指定目标操作系统和架构。 编译命令 在项目目录下执行以下命令&#xff1a; 1. MacOS 编译 GOOSdarwin GOARCHamd64 go build …

使用Python和OpenCV连接并处理IP摄像头视频流

使用Python和OpenCV连接并处理IP摄像头视频流 随着智能设备的发展&#xff0c;越来越多的家庭和企业开始使用IP摄像头进行安全监控或远程查看。这些摄像头通常可以通过网络访问&#xff0c;提供了丰富的功能&#xff0c;如实时视频流、云台控制等。本文将详细介绍如何利用Pyth…

计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

【C#】面向对象:矩形类计算周长和面积

文章目录 一、矩形类的设计与实现1.1 矩形类的属性1.2 矩形类的构造函数1.3 矩形类的方法1.4 代码实现1.4.1 运行 一、矩形类的设计与实现 题目&#xff1a;编写一个矩形类&#xff0c;私有数据成员为举行的长(Len)和宽(Wid)&#xff0c;无参构造函数将len和wid设置为0&#x…