Qt-绘制多边形、椭圆、多条直线

1、说明

所有的绘图操作是在绘图事件中进行。
mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();//重写虚函数virtual void paintEvent(QPaintEvent *event);
private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.c

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QPainter>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//设置窗口固定大小(X轴,Y轴)this->resize(1800,1000);
}
void MainWindow::paintEvent(QPaintEvent *event)
{}

2、绘制多个点

   //定义画家 ,需要一个画板(QPaintDevice)对象来构造  QPainter(QPaintDevice *)QPainter painter(this);//反锯齿设置painter.setRenderHint(QPainter::Antialiasing);/*------------1、绘制一个点函数-----------*///定义画笔 15是画笔的粗细QPen pen( QBrush( Qt::red) , 15);//把画笔给画家painter.setPen(pen);//开始画点painter.drawPoint(QPoint( 0,0));//绘制两个点painter.drawPoint(QPoint( 100,100));/*------------2、绘制多个点函数,定义函数-----------*///画多个点 定义的一个数组//定义画笔 15是画笔的粗细 设置为蓝色pen.setColor(Qt::blue);//把画笔给画家painter.setPen(pen);QPoint pts[]={  QPoint( 200,200),QPoint( 300,300) };painter.drawPoints(pts,2);//绘制多个点函数

3、绘制多条直线

/*------------3、方式二:绘制一条直线方式一-----------*/QPen pen1( QBrush( Qt::red) , 15);pen1.setColor(Qt::green);//修改画笔的粗细pen1.setWidth(3);//重新设置画笔 画笔交给画家 替换画家手中原来的画笔 **重要**painter.setPen(pen1);//画直线 两点确定一条直线painter.drawLine(QPoint( 200,200),QPoint( 300,300)  );/*------------4、绘制多条直线,定义数组多用,重要-----------*/pen1.setColor(Qt::blue);painter.setPen(pen1);        //替换画家手中原来的画笔 **重要**QLine line(400,400,  500,500);QLine line2(600,600, 700,700);QLine lines[] ={ line, line2};//画多条线 将多条画线交给画家 替换原来的画线painter.drawLines(lines,2  );

4、绘制椭圆

    /*------------5、绘制椭圆-----------*///绘制椭圆代码 矩形圆心坐标(200,100) 长轴50 短轴20painter.drawEllipse(200,100,50,20);

5、绘制多边形

此处绘制的多边形会形成闭合。

  /*------------6、绘制多边形-----------*/QPolygon pts;//3个点, (32,0) (44,0) (38,50)pts.setPoints(3, 32 ,0 , 44, 0,38,50);//设置画笔与画刷 画笔颜色 填充颜色//    painter.setPen(QPen(Qt::white,0.5));//    painter.setBrush( QColor("#FF4500") );painter.drawPolygon(pts);

6、绘制多条直线

同时绘制多条直线。

 /*------------6、绘制多条直线-----------*/QLineF line3(43.0576+400,-468.5811+800,  357.5507+400,-557.6556+800);QLineF line4(47.6494+410,-467.0754+800,  363.1472+410,-556.4345+800);QLineF _lines[] ={ line3, line4};//画多条线 将多条画线交给画家 替换原来的画线painter.drawLines(_lines,2);

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

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

相关文章

54Max09116-源代码 刚出max的第一个版本

54Max09116-源代码 刚出max的第一个版本 参考资料&#xff1a; 54Max09116-源代码 刚出max的第一个版本_98999NET源码资源网

SpringCloud框架 服务拆分和远程调用

数据库隔离避免耦合度过高&#xff0c;不同模块将自己的业务暴露为接口&#xff0c;供其他微服务调用 微服务远程调用技术Rest 在后端实现发送http请求 1.在启动类/配置类里注册RestTemplate启动对象 2.注入Bean对象使用

HTML5 新增语义标签及属性

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 ✍HTML5 新增语义标签及属性&#x1f48e;1 HTML5 新增的块级语义化标签&…

【word】文档标题如何自动编号

我在写一个word文档的时候&#xff0c;每一级标题的格式都设置好了&#xff0c;包括字体&#xff0c;大小等等&#xff0c;但是如何自动编号呢&#xff1f; 在写中期报告的时候&#xff0c;我对每一级标题的格式都创建了一个单独的样式&#xff0c;像这样&#xff1a; 对于每一…

OSCP靶场--Validator

OSCP靶场–Validator 考点 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.227.253 -p- -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-15 04:13 EDT Warning: 192.168.227.253…

通过Omnet++官网tictoc教程学习在Omnet++中构建和运行仿真 Part3

TicToc Part3 增强2节点 TicToc增加图标增加 日志添加状态变量增加参数使用NED 继承模拟处理延时随机数字和参数超时、取消计时器重传同样的消息 官方文档 在官方文档中&#xff0c;你可以看见所有的代码 增强2节点 TicToc 增加图标 为了使模型在GUI中看起来更好看&#xff…

国外EDM邮件群发多少钱?哪个软件好?

在当今全球化市场环境下&#xff0c;电子邮件营销作为最有效的数字营销渠道之一&#xff0c;其影响力不容忽视。而高效精准的EDM&#xff08;Electronic Direct Mail&#xff09;邮件营销策略更是企业拓展海外市场、提升品牌知名度的关键手段。云衔科技以其创新的智能EDM邮件营…

【Lattice FPGA 开发】Modelsim与Diamond联合仿真

本文讲解Modelsim与Diamond进行联合仿真步骤&#xff0c;以及对遇到问题的解决与说明。 文章目录 软件版本0. Diamond设置文件为仿真文件特别注意 1. Diamond设置仿真软件为Modelsim2. Modelsim编译Lattice的库文件2.1 新建文件夹存放库文件2.2 Modelsim中建立新的仿真库2.2.1…

病毒繁殖-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第52讲。 病毒繁殖&#xf…

Qt---控件的基本属性

文章目录 enabled(控件可用状态)geometry(位置和尺寸)简单恶搞程序 windowIcon(顶层 widget 窗口图标)使用 qrc 机制 windowOpacity(窗口的不透明值)cursor(当鼠标悬停空间上的形状)自定义鼠标图标 toolTip(鼠标悬停时的提示)focusPolicy(控件获取焦点的策略)styleSheet(通过CS…

自定义Centos的终端的命令提示符

背景 当我们使用终端登陆Centos时&#xff0c;就自动打开了ssh终端。这个终端的命令提示符一般是这样的&#xff1a; 这个以#号结束的一行字&#xff0c;就是我们说的命令提示符了。 这个是腾讯云的服务器的提示符&#xff0c;可以看到主机名是VM-4-7-centos。 但是这个看起…

考华为数通方向的HCIE认证经验分享

大家好&#xff0c;我是来自安阳工学院20级网络工程的楚同学。在2023年12月6日&#xff0c;我顺利通过了华为数通方向的HCIE认证&#xff0c;在此&#xff0c;我想分享一些备考心得给正在努力备考的小伙伴们。 关于考证的契机 在大一上学期&#xff0c;我们的课程安排在实验…