QT:绘图

news2024/11/27 21:02:05

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPaintEvent>  //绘图事件

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

    void paintEvent(QPaintEvent *event);  //重写绘图事件
    void timerEvent(QTimerEvent *event);
private:
    int xPos;  //x轴坐标
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include <QPainter>  //画家
#include <QPen>   //画笔
#include <QBrush>   //画刷
#include <QTimerEvent>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent),xPos(0)   //x轴坐标初始化为0
{
    setWindowTitle("绘图");
    setFixedSize(1000,800);
    //QWidget自带一个定时器
    startTimer(1000);
}

Widget::~Widget()
{

}

//重写绘图事件
void Widget::paintEvent(QPaintEvent *event)
{
    //将widget主窗口作为画布
    QPainter painter(this);

    //设置画笔颜色为蓝色
    QPen pen(QColor(0,0,255));  //三基色:红绿蓝
    //设置画笔的粗细
    pen.setWidth(2);
    //设置画笔风格:点线
    pen.setStyle(Qt::DotLine);

    //设置画刷颜色为红色:填充
    QBrush brush(QColor(255,0,0));
   //设置画刷风格
    brush.setStyle(Qt::Dense6Pattern);

   painter.setPen(pen);
   painter.setBrush(brush);

   //画一条线,起始x轴y轴,终点x轴y轴
   painter.drawLine(0,0,100,100);
   //画矩形,起始x轴y轴,宽200高100
   painter.drawRect(100,100,200,100);
   //画圆
   painter.drawEllipse(400,100,100,100);
   //画椭圆
   painter.drawEllipse(500,100,400,100);

   //画浮点数的点
   const QPointF points[4] = {
       QPointF(10.1,80.2),
       QPointF(20.1,10.5),
       QPointF(70.6,40.7),
       QPointF(90.2,100.6)
   };
   //画多边形,多个点连接
   painter.drawPolygon(points,4);

   //画图片
   painter.drawPixmap(xPos++*50,400,QPixmap(":/images/luffy.png"));
   if(xPos*50 > this->width())   //图片移动
   {
       xPos = 0;
   }
}

void Widget::timerEvent(QTimerEvent *event)
{
    qDebug() << "超时事件";

    //手动刷新,让窗口重绘,产生绘图事件
    this->update();
}

mian.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

资源文件

结果

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

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

相关文章

Claude一个比chat-gpt相同但使用门槛更低的ai生产力

本篇文章主要介绍Claude的官网、使用方法&#xff0c;以及Claude 的特性和与chat-gpt的区别。 日期&#xff1a;2023年6月17日 作者&#xff1a;任聪聪 Claude 的介绍及相关信息 Claude 也是一个与chat-gpt等同的nlp大语言模型&#xff0c;效果和gpt几乎差不多&#xff0c;能够…

程序在线报刊第一期

文章目录 程序在线报刊第一期排序算法&#xff1a;优化数据处理效率的核心技术回顾区块链技术&#xff1a;去中心化引领数字经济新时代展望AI未来&#xff1a;智能化时代的无限可能 程序在线报刊第一期 排序算法&#xff1a;优化数据处理效率的核心技术 近年来&#xff0c;随…

区块链(9):java区块链项目的Web服务实现之实现web服务

1 引入pom依赖 <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.4.8.v20171121</version></dependency><dependency><groupId>org.eclipse.jetty</groupId…

Tomcat多实例、负载均衡、动静分离

Tomcat多实例部署 安装jdk [rootlocalhost ~]#systemctl stop firewalld.service [rootlocalhost ~]#setenforce 0 [rootlocalhost ~]#cd /opt [rootlocalhost opt]#ls apache-tomcat-8.5.16.tar.gz jdk-8u91-linux-x64.tar.gz rh [rootlocalhost opt]#tar xf jdk-8u91-linu…

Vivado与Notepad++关联步骤

填写内容 先看"关联步骤"再看此处&#xff1a; 在“editor”栏中填写 Notepad的路径&#xff0c;并加上[file name] -n[line number]&#xff0c; 这里我的 Notepad 的路径为 C:/Program Files (x86)/Notepad/notepad.exe &#xff1b; 故这里我就填上以下内容即可…

【人工智能 | 认知观与系统类别】从宏观角度看人工智能认知观与系统类别:探索人工智能无垠领域

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

Spirng Cloud Alibaba Nacos注册中心的使用 (环境隔离、服务分级存储模型、权重配置、临时实例与持久实例)

文章目录 一、环境隔离1. Namespace&#xff08;命名空间&#xff09;&#xff1a;2. Group&#xff08;分组&#xff09;&#xff1a;3. Services&#xff08;服务&#xff09;&#xff1a;4. DataId&#xff08;数据ID&#xff09;&#xff1a;5. 实战演示&#xff1a;5.1 默…

SpringBoot终极讲义第二章笔记

01.关于Import 和 ImportResource Import注解用法(类上): 一般和Configuration一起使用,用来导入里面Bean方法返回的对象 ImportResource(类上):一般和Configuration一起使用,用来导入某个.XML文件里的bean 个人觉得这两个注解有点鸡肋 SpringBoot启动类默认扫描的是启动类…

电子地图 | VINS-FUSION | 小觅相机D系列

目录 一、相关介绍 二、VINS-FUSION环境安装及使用 &#xff08;一&#xff09;Ubuntu18.04安装配置 1、Ubuntu下载安装 2、设置虚拟内存&#xff08;可选&#xff09; &#xff08;二&#xff09;VINS-FUSION环境配置 1、ros安装 2、ceres-solver安装 3、vins-fusion…

智慧公厕与传统公共厕所对比五大优势是什么?

随着科技的不断发展&#xff0c;智慧公厕成为城市建设的新亮点。与传统公共厕所相比&#xff0c;它具备许多独特优势和巨大的价值。本文将以智慧公厕领先厂家广州中期科技有限公司&#xff0c;大量精品案例项目实景实例实图&#xff0c;深入探讨智慧公厕的各个方面的特点&#…

PHP禁止单个用户多设备同时登陆,限制单个用户在多端重复登录

逻辑简单,主要是3点&#xff1a; 1.登录的时候写入一个最新的登录IP到user表其中一个last_login_ip字段 2.登录成功的时候,转入到index控制器或者index方法之前先进行查询&#xff1a; 1).当前IP 2).数据库字段当前用户存储的last_login_ip里面的IP 3.然后进行判断&#xff0…

前端面试题:在浏览器输入url回车后发生什么?浏览器渲染页面详细流程

❤️在浏览器输入url回车后 可以分为八步 解析url并且判断其合法性DNS解析url到指定的ip建立TCP连接&#xff08;3次握手&#xff09;发送HTTP请求&#xff08;请求行/头/体&#xff09;服务器处理收到的请求&#xff0c;将数据返回浏览器浏览器收到HTTP响应浏览器解析并渲染页…

Linux基本操作符(2)

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 关于Linux的操作符&#xff0c;在上篇博客中我们已经讲述了一些&#xff0c;都是Linux最基本的操作符。今天我们继续了解一些关于对文件及目录增删查改的操作符&#xff0c;话不多说我们直接上内容。 目录 rm指令的回…

RAID知识点总结

目录 RAID类型 RAID的数据组织及存取方式 RAID热备与重构 RAID逻辑卷 常见的RAID RAID0 RAID 1 RAID3 RAID 5 RAID 6 RAID组合 RAID 10 RAID 50 总结 RAID技术对比 RAID的应用场景 RAID2.0 使用RAID2.0的原因 RAID2.0的发展 RAID2.0技术&#xff1a;两层虚拟…

【C语言数据结构——————栈和队列4000字详解】

欢迎阅读新一期的c语言数据结构模块————栈和队列 ✒️个人主页&#xff1a;-_Joker_- &#x1f3f7;️专栏&#xff1a;C语言 &#x1f4dc;代码仓库&#xff1a;c_code &#x1f339;&#x1f339;欢迎大佬们的阅读和三连关注&#xff0c;顺着评论回访&#x1f339;&#…

【Redis】简单动态字符串SDS

C语言字符串 char *str "redis"; // 可以不显式的添加\0&#xff0c;由编译器添加 char *str "redis\0"; // 也可以添加\0代表字符串结束C语言中使用char*字符数组表示字符串&#xff0c;‘\0’来标记一个字符串的结束&#xff0c;不过在使用的过程中我…

CAA DMU模块仿真

背景 本人由于项目原因&#xff0c;需要基于CATIA格式文件研究CAM的一些操作&#xff0c;其中就包括仿真功能&#xff0c;而CATIA中适合实现仿真功能的模块就是 DMU (Digital Mock-Up) 模块&#xff0c;本人研究了很长时间&#xff0c;尝试了很多方案&#xff0c;特地记录下来…

华为云云耀云服务器L实例评测|Docker部署及应用

文章目录 前言&#x1f4e3; 1.前言概述&#x1f4e3; 2.服务器攻击✨ 2.1 问题描述✨ 2.2 处理方法 &#x1f4e3; 3.Docker简介&#x1f4e3; 4.安装Docker✨ 4.1 卸载旧版docker✨ 4.2 安装依赖包✨ 4.3 安装GPG证书✨ 4.4 配置仓库✨ 4.5 正式安装Docker✨ 4.6 配置用户组✨…

Spring Boot的魔法:构建高性能Java应用

文章目录 Spring Boot&#xff1a;简化Java开发Spring Boot的性能优势1. 内嵌服务器2. 自动配置3. 起步依赖4. 缓存和优化5. 异步处理 实际示例&#xff1a;构建高性能的RESTful API总结 &#x1f389;欢迎来到架构设计专栏~Spring Boot的魔法&#xff1a;构建高性能Java应用 ☆…

洛谷P1102 A-B 数对题解

目录 题目A-B 数对题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示传送门 代码解释亲测 题目 A-B 数对 题目背景 出题是一件痛苦的事情&#xff01; 相同的题目看多了也会有审美疲劳&#xff0c;于是我舍弃了大家所熟悉的 AB Problem&#xff0c;改用 …