今天记录一下画图部分的程序,比较简单,容易操作,为接下来打好基础:

先说界面吧:

里面的图位置跟图像学有点关系,多多理解一下:

对应的头文件:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTprotected:void paintEvent(QPaintEvent *event);public:explicit Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;};#endif // WIDGET_H

对应的cpp 文件:

#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <iostream>#include<math.h>
using namespace  std;void Widget::paintEvent(QPaintEvent *event)
{Q_UNUSED(event)QPainter   painter(this);//创建QPainter对象painter.setRenderHint(QPainter::Antialiasing);//painter.setRenderHint(QPainter::TextAntialiasing);////生成五角星的5个顶点的,假设原点在五角星中心qreal R = 100; //半径    //这里说明一下,qreal 在windows 下面是double 在嵌入式中是float类型。const qreal Pi = 3.1415926;qreal deg = Pi * 72/180;QPoint points[5] = {QPoint(R,0),QPoint(R*cos(deg),-R*sin(deg)),QPoint(R*cos(2*deg),-R*sin(2*deg)),QPoint(R*cos(3*deg),-R*sin(3*deg)),QPoint(R*cos(4*deg),-R*sin(4*deg)),};//设置字体QFont font;font.setPointSize(12);font.setBold(true);painter.setFont(font);//设置画笔QPen penLine;penLine.setWidth(2);//线宽penLine.setColor(Qt::blue); //划线颜色//Qt::NoPen,Qt::SolidLine, Qt::DashLine, Qt::DotLine,Qt::DashDotLine,Qt::DashDotDotLine,Qt::CustomDashLinepenLine.setStyle(Qt::SolidLine);//线的类型,实线、虚线等//Qt::FlatCap, Qt::SquareCap,Qt::RoundCappenLine.setCapStyle(Qt::FlatCap);//线端点样式//Qt::MiterJoin,Qt::BevelJoin,Qt::RoundJoin,Qt::SvgMiterJoinpenLine.setJoinStyle(Qt::BevelJoin);//线的连接点样式painter.setPen(penLine);//设置画刷QBrush  brush;brush.setColor(Qt::yellow); //画刷颜色brush.setStyle(Qt::SolidPattern); //画刷填充样式painter.setBrush(brush);  ////设计绘制五角星的PainterPath,以便重复使用QPainterPath starPath;starPath.moveTo(points[0]);starPath.lineTo(points[2]);starPath.lineTo(points[4]);starPath.lineTo(points[1]);starPath.lineTo(points[3]);starPath.closeSubpath(); //闭合路径,最后一个点与第一个点相连starPath.addText(points[0],font,"0"); //显示端点编号starPath.addText(points[1],font,"1");starPath.addText(points[2],font,"2");starPath.addText(points[3],font,"3");starPath.addText(points[4],font,"4");//绘图painter.save(); //保存坐标状态painter.translate(100,120);painter.drawPath(starPath); //画星星painter.drawText(0,0,"S1");painter.restore(); //恢复坐标状态painter.translate(300,120); //平移painter.scale(0.8,0.8); //缩放painter.rotate(90); //顺时针旋转painter.drawPath(starPath);//画星星painter.drawText(0,0,"S2");painter.resetTransform(); //复位所有坐标变换painter.translate(500,120); //平移painter.rotate(-145); //逆时针旋转painter.drawPath(starPath);//画星星painter.drawText(0,0,"S3");
}Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);setPalette(QPalette(Qt::white)); //设置背景色是白色setAutoFillBackground(true); //设置背景自动填充resize(600,300); //固定大小
}Widget::~Widget()
{delete ui;
}

Qt5.9最简单的画五角星相关推荐

  1. Java数字图像处理基础-------Java Swing简单使用,图形绘画---画五角星

    Java数字图像处理基础-------Java Swing简单使用,图形绘画-画五角星 一:简介 要画出五角星出来,我们只需要在面板上产生5个点,然后把这5个点进行连接就可实现: 二:代码演示 imp ...

  2. python画五角星代码_Python GUI 编程tkinter--画五角星和简单的动画制作

    1.利用Python的tkinter画一个五角星: 2.做一个简单的动画 分析五角心的五个顶点的坐标: 确立五角星的中心点和半径,再确立五角星的五个角的坐标信息,其中五角星的各个角读书为36度,具体的 ...

  3. python画五角星代码_Python使用turtule画五角星的方法

    Python使用turtule画五角星的方法 更新时间:2015年07月09日 10:04:03 作者:pythonstart 这篇文章主要介绍了Python使用turtule画五角星的方法,运行该程 ...

  4. Python turtle入门:用小海龟画美队盾牌 (内附画五角星的详细代码)

    这篇博文是博主自己的python turtle库学习记录(xiaobai),也是和uu的学习分享!! 赶紧来看看小海龟是怎么画美队盾牌的吧!! 画五角星      (想看五角星画法的uu直接点这里哈) ...

  5. 用OpenGL画五角星

    第一次写博客,正在上大二,学的计算机专业,因为课很杂,想把自己学过的东西顺便写下来做个记录,写的不好请见谅! 这个学期学的图形学,主要是讲OpenGL的东西,老师让我们自己用GL_LINES.GL_L ...

  6. windows编程之画五角星

    这边我们介绍一下利用windows编程如何来画五角星,下面主要介绍了3种与五角星相关图形的画法: 1.正常的五角星 代码如下: #include<windows.h> #include&l ...

  7. python画五角星没有填色_Python使用turtule画五角星的方法

    Python使用turtule画五角星的方法 本文实例讲述了Python使用turtule画五角星的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python impo ...

  8. python画五角星代码_Python使用Turtle模块绘制五星红旗代码示例

    在Udacity上课时学到了python的turtle方法,这是一个很经典的用来教小孩儿编程的图形模块,最早起源于logo语言.python本身内置了这个模块,其可视化的方法可以帮助小孩儿对编程的一些 ...

  9. Qt5.9一个简单的多线程实例(类QThread)(第一种方法)

    Qt开启多线程,主要用到类QThread.有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run().当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程 ...

最新文章

  1. Mysql 基于 Amoeba 的 读写分离(2)
  2. Android 调试 Release 包(debuggable)
  3. python可以自学吗-没学过编程可以自学python吗
  4. 杭电 汉诺塔问题总结
  5. 搭建mongodb集群(副本集+分片)
  6. uvalive5798(树状数组)
  7. phpcms如何给已有的模块添加新功能?
  8. linux环境下c回车,linux_C 让 getchar()不再需要回车
  9. Exynos4412裸机开发 —— RTC 实时时钟单元
  10. JS 进阶知识点及常考面试题
  11. 10无法更新系统_2020年4月公积金网上系统更新后无法登陆故障解决办法
  12. 使用Netsparker扫描及**某站点
  13. GNS3环境安装流程
  14. gpuinfo测试软件,gpuinfo
  15. java xheditor 上传图片_xheditor上传图片的java实现
  16. MATLAB 绘制空间分布图,颜色代表数值(替代ArcGIS)
  17. [经验教程]国内如何下载更新google谷歌浏览器及更新谷歌chrome浏览器无法访问此网站怎么办?
  18. 鸿蒙系统怎么安装网易云音乐,网易云音乐鸿蒙版app下载-网易云音乐鸿蒙版最新版下载v1.7.5-IT168下载站...
  19. SQL server Date函数之CONVERT()函数
  20. 制作往图片里插入视频,视频添加到图片上播放

热门文章

  1. java jzip_JAVA UI 实现ZIP的压缩与解压缩
  2. 微信小程序getday方法_日期getDay()方法和JavaScript中的示例
  3. 如何获取股票交易数据接口?
  4. 深度融合钉钉PaaS,授客学堂助力企业实现培训数字化
  5. ChatGPT版微信个人号搭建流程
  6. 利用dns特性把普通域用户提升到域管理员权限
  7. word怎么删除参考文献的横线_word2016怎么去掉引用参考文献的横线?
  8. shema SQLServer
  9. 太牛了!我的阿里春招之路分享,值得收藏!
  10. python的tkinter插入图片_Python3 Tkinter基础 Text Photoimage 文本框中插入一张图片