QT画图功能

QT画图功能

每个QWidget都自带的功能,继承了QPainteDevice都可以使用QPainter来进行绘图。
画图需要调用paintEvent绘制事件,paintEvent事件时QWidget类自带的事件。
重写paintEvent事件。(重写事件:如果父类有某个方法,此时子类需要有一个跟父类同样方法名称的)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
实例化对象写法

    //实例化QPainter painter(this);//相当于QPainter *painter = new QPainter(this);

画直线举例
(0,0)表示起点,(300,300)表示终点。

void Widget::paintEvent(QPaintEvent *event)
{//实例化  属于局部变量QPainter painter(this);//相当于QPainter *painter = new QPainter(this);//绘制线painter.drawLine(0,0,300,300);
}

设置渲染模式:使得平滑渲染

    //设置曲线的平滑度painter.setRenderHint(QPainter::Antialiasing,true);

绘制弧线
//30 30 表示开始绘制位置 100 100 表示绘制绘制范围宽高,3016表示起始弧度,14016表示跨越弧度
角度*16 = 弧度

    //绘制曲线(弧线)painter.drawArc(30,300,100,100,30*16,140*16);

绘制饼图

    //绘制饼图painter.drawPie(50,50,100,100,0,90*16);

绘制矩形

    //绘制矩形painter.drawRect(200,200,100,100);

绘制并填充
QBrush表示笔刷对象
QColor表示颜色对象

//填充painter.fillRect(100,100,100,100,QBrush(QColor(255,0,0)));

绘制文字

painter.drawText(300,210,"水平轴");
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
//添加绘制者头文件
#include <QPainter>#include<QString>
namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;//重写绘制事件  快捷键alt+enter 定义具体的事件void paintEvent(QPaintEvent *event);};#endif // WIDGET_H
#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::paintEvent(QPaintEvent *event)
{//实例化  属于局部变量QPainter painter(this);//相当于QPainter *painter = new QPainter(this);//绘制原点 文字painter.drawText(10,210,"0");//绘制坐标轴  X轴painter.drawLine(10,200,310,200);//分割水X平轴for(int i = 2;i < 31;i++){painter.drawLine(10*i,195,10*i,200);if(i%4 == 0)//每4个点画一次{painter.drawText(10*i,210,QString::number(10*i));}}//水平X轴的坐标文字painter.drawText(310,210,"水平轴");//绘制坐标轴  Y轴painter.drawLine(10,200,10,10);//分割Y轴for(int i = 2;i < 20;i++){painter.drawLine(10,10*i,15,10*i);if(i%4 == 0)//每4个点画一次{painter.drawText(15,10*(19-i),QString::number(10*i));}}//y轴的坐标文字painter.drawText(10,10,"垂直轴");//生成随机数 产生0-190之间的随机整数int curx,cury,oldx,oldy;curx = 10;cury = qrand()%191;for(int i = 2;i < 30;i++){oldx = 10*i;oldy = qrand()%191;;painter.drawLine(curx,cury,oldx,oldy);curx = oldx;cury = oldy;//画点painter.drawPoint(QPoint(oldx,oldy));}}

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

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

相关文章

Spring Boot 面试题及答案整理,最新面试题

Spring Boot中的自动配置是如何工作的&#xff1f; Spring Boot的自动配置是其核心特性之一&#xff0c;它通过以下方式工作&#xff1a; 1、EnableAutoConfiguration注解&#xff1a; 这个注解告诉Spring Boot开始查找添加了Configuration注解的类&#xff0c;并自动配置它们…

22.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-加载配置文件到分析工具界面

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;21.配置数据保存…

加快代码审查的 7 个最佳实践

目录 前言 1-保持小的拉取请求 2-使用拉取请求模板 3-实施响应时间 SLA 4-培训初级和中级工程师 5-设置持续集成管道 6-使用拉取请求审查应用程序 7-生成图表以可视化您的代码更改 前言 代码审查可能会很痛苦软件工程师经常抱怨审查过程缓慢&#xff0c;延迟下游任务&…

什么是GoogLeNet,亮点是什么,为什么是这个结构?

GooLeNet 亮点 最明显的亮点就是引入了Inception&#xff0c;初衷是多卷积核增加特征的多样性&#xff0c;提高泛化能力 &#xff0c;比如&#xff0c;最下边是一个输入层&#xff0c;然后这个输入分别传递给1*1&#xff0c;3 * 3 &#xff0c;5 * 5和一个最大池化层&#xff…

2024春招和暑期实习全面启动!

大家好&#xff0c;我是小柠檬。2024春招和暑期实习全面启动&#xff01;最近&#xff0c;我注意到很多同学都在积极投递简历。 3D视觉求职星球 今天给大家推荐我们的3D视觉岗求职星球&#xff0c;里面时常发布大量3D视觉岗位和星球专属内推岗位。 篇幅有限&#xff0c;文节选…

最新全流程GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术深度应用

本文以地下水数值模拟软件GMS操作&#xff0c;本文中强调模块化教学&#xff0c;分为前期数据收集与处理&#xff1b;三维地质结构建模&#xff1b;地下水流动模型构建&#xff1b;地下水溶质运移模型构建和反应性溶质运移构建5个模块&#xff1b;采用全流程模式将地下水数值模…

后端项目访问不了

问题&#xff1a; 后端启动不了&#xff0c;无法访问网站 原因&#xff1a; 1.防火墙没有关 2.有缓存 3、项目没有启动 4、docker没有启动 解决&#xff1a; 先查看进程&#xff1a;docker ps&#xff0c;必须有三个 详细查看&#xff1a;docker ps -a exited代表没有开启…

trunk

介绍&#xff1a; 在华为企业级网络模拟平台&#xff08;eNSP&#xff09;中&#xff0c;“trunk” 是指用于在交换机之间传送多个 VLAN 数据的端口。在华为设备中&#xff0c;“trunk” 端口实际上就是可以承载多个 VLAN 数据流的端口。 当两台交换机之间需要互相传送多个 VLA…

关于多权威属性加密论文阅读

来源于2007年Multi-authority Attribute Based Encryption 从单权威机构到多权威机构的意义是什么呢&#xff1f; 基础方案&#xff08;单权威方案SW&#xff09;支持数据持有者对数据进行加密使用指定的属性集合并且指定一个数值d。当一个用户需要使用该数据时&#xff0c;需…

【LLM】Advanced rag techniques: an illustrated overview

note 文章目录 noteAdvanced rag techniques: an illustrated overview基础RAG高级RAG分块和向量化(Chunking & Vectorisation)搜索索引(Search Index)1. 向量存储索引&#xff08;Vector Store Index&#xff09;2. 多层索引(Hierarchical Indices)3. 假设问题和HyDE(Hypo…

intel realsense D405 在 ROS2 使用示例

1.点云示例 此示例演示如何启动相机节点并使其使用点云选项发布点云。 ros2 launch realsense2_camera rs_launch.py pointcloud.enable:true 以下示例启动相机并同时打开 RViz GUI 以可视化发布的点云。它执行上面的 2 个示例。 ros2 launch realsense2_camera rs_pointcl…

第九个实验:一维数组和二维字符串数组的输入而输出

实验内容: 新建一维数组 新建二维字符串数组 输入内容,运行结果,在输出界面中显示输入的内容 第一步:新建项目 第二步:编程 添加一个INT数控件和字符串控件 修改控件: 复制前面板控件

基于C++和Qt Creator实现的仿制网易云音乐播放器

目录 总体介绍开发环境技术介绍项目目录项目介绍特殊说明Gitee地址 总体介绍 仿照网易云播放器界面实现&#xff0c;目的在于锻炼C编程能力&#xff0c;熟练掌握Qt Creator各种组件的使用及样式设置、界面布局、QtPlugin技术、QXml读写XML文件方法、Qss文件的编写及使用等。 …

协程库项目—协程类模块

ucontext_t结构体、非对称协程 协程类 ucontext_t结构体 头文件中定义的四个函数&#xff08;getcontext(), setcontext(), makecontext(), swapcontext()&#xff09;和两个结构类型&#xff08;mcontext_t, ucontext_t&#xff09;在一个进程中实现用户级的线程切换。 其中…

Spring Boot 中解决跨域的多种方式

Spring Boot 中解决跨域的多种方式 《踏过跨域障碍&#xff1a;Spring Boot 中解决跨域的多种方式》摘要引言正文何为跨域跨域问题出现特征方式一&#xff1a;使用 CrossOrigin 注解方式二&#xff1a;自定义 WebMvcConfigurer方式三&#xff1a;使用 Filter 进行跨域配置 结论…

免费无水印视频素材哪里下载?这几个地方您要知道

哟哟&#xff0c;切克闹&#xff0c;视频剪辑达人们&#xff0c;是不是在视频素材的海洋里迷航了&#xff1f;别着急&#xff0c;今天我就给大家分享几个超实用的无水印短视频素材合集网&#xff0c;让你的创作更加得心应手&#xff0c;从此素材不再是你的烦恼 1&#xff0c;蛙…

Vue3与Vue2:对比分析与迁移指南

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

从零学习Linux操作系统 第三十五部分 Ansible中的角色

一、理解roles在企业中的定位及写法 #ansible 角色简介# Ansible roles 是为了层次化&#xff0c;结构化的组织Playbookroles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中&#xff0c;并可以便捷地include它们roles一般用于基于主机构建服务的场景中&…

002typeScript面试,1 理解TS类?2 类的继承 3 修饰符 4 抽象类理解 5 枚举类 enum

1 理解TS类&#xff1f; 2 类的继承 3 修饰符 3-1) private 3-2) protected 3-3) readonly 4 抽象类理解 5 枚举类 enum 5-1&#xff09;枚举模式 5-2&#xff09;数字枚举 5-3&#xff09;字符串枚举 5-4&#xff09;异构枚举

蓝桥杯刷题5--GCD和LCM

目录 1. GCD 1.1 性质 1.2 代码实现 2. LCM 2.1 代码实现 3. 习题 3.1 等差数列 3.2 Hankson的趣味题 3.3 最大比例 3.4 GCD 1. GCD 整数a和b的最大公约数是能同时整除a和b的最大整数&#xff0c;记为gcd(a, b) 1.1 性质 GCD有关的题目一般会考核GCD的性质。   …