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…

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

目录 创建型模式概述 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;为用户提供了一个全面、灵活、高效的视频监控解决…

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

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

Java基础——继承和多态

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

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

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

计算机毕业设计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…

【PyTorch][chapter 28] 揭秘 Transformer:缩放定律指南

概括 我们介绍了 LLM 的各种缩放定律&#xff0c;研究了模型损失如何随着训练数据和参数数量的增加而变化。讨论包括对用于解释 LLM 缩放定律的 IsoLoss 轮廓和 IsoFLOPs 切片的解释&#xff0c;从而为优化计算资源提供了见解。 最后&#xff0c;我们讨论了 FLOP 和 FLOPS 的概…

【课堂笔记】隐私计算实训营第四期:隐私求交PSI

隐私计算实训营第四期&#xff1a;隐私求交PSI 安全求交集&#xff08;PSI&#xff09;定义PSI功能和分类最基础的PSI&#xff1a;Two-Party Semi-Honest PSI如何设计Two-Party Semi-Honest PSI方法1&#xff1a;一个基于Hash的PSI方法2&#xff1a;基于Diffie-Hellman密钥交换…

数据结构(基本概念及顺序表——c语言实现)

基本概念&#xff1a; 1、引入 程序数据结构算法 数据&#xff1a; 数值数据&#xff1a;能够直接参加运算的数据&#xff08;数值&#xff0c;字符&#xff09; 非数值数据&#xff1a;不能够直接参加运算的数据&#xff08;字符串、图片等&#xff09; 数据即是信息的载…

Springboot+Vue的项目搭建(一)

一、JDK配置环境变量 1、在官网下载jdkJava Downloads | Oracle 中国 2、下载之后双击安装。 3、配置环境变量&#xff0c;做法&#xff1a;此电脑->右键->属性->高级系统设置 然后点击确定即可 点击winr java -version 检查一下是否配置成功 二、maven包管理器…

使用 JavaScript 制作 To-Do List

使用 JavaScript 制作 To-Do List 本文记录了使用 HTML、CSS 和 JavaScript 制作一个简单的 To-Do List 网页的全过程&#xff0c;包含功能描述、代码实现以及优化方向。 **&#x1f389;&#x1f389;&#x1f389;欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的…

esp32c3开发板通过micropython的mqtt库连MQTT物联网消息服务器

MQTT介绍 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的消息协议&#xff0c;旨在设备之间进行通信&#xff0c;尤其是在网络条件较差的情况下。MQTT v3.1.1 和 MQTT v5 是该协议的两个主要版本。 MQTT v3.1.1&#xff1a; 优点&#xff…