Qt中的绘图事件

news2024/10/6 21:32:49

文章目录

  • QPainter 绘图
  • 绘图设备QPixmap

QPainter 绘图

  • 绘图事件 void paintEvent()
  • 声明一个画家对象 QPainter painter(this) this指定绘图设备
  • 画线、画圆、画矩形、画文字
  • 设置画笔 QPen 设置画笔宽度 、风格
  • 设置画刷 QBrush 设置画刷 风格

测试

#include "widget.h"
#include "ui_widget.h"
#include <QPainter> //画家类

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

void Widget::paintEvent(QPaintEvent *event)
{
    //实例化画家对象 this 指定的是绘图的设备(在当前窗口画)
    QPainter painter(this);

    //设置画笔
    QPen pen(QColor(255,0,0));
    //设置画笔的宽度
    pen.setWidth(3);
    //设置画笔风格
    pen.setStyle(Qt::DotLine);
    //让画家使用这个画笔
    painter.setPen(pen);

    //设置画刷
    QBrush brush(Qt::cyan);
    //设置画刷风格
    brush.setStyle(Qt::Dense7Pattern);
    //让画家使用画刷
    painter.setBrush(brush);

    //画线
    painter.drawLine(QPoint(0,0),QPoint(100,100));

    //画圆  椭圆
    painter.drawEllipse(QPoint(100,100),50,50);

    //画矩形
    painter.drawRect(QRect(20,20,50,50));

    //画文字
    painter.drawText(QRect(10,200,150,50),"好好学习,天天向上");
}

Widget::~Widget()
{
    delete ui;
}

在显示窗口的时候,自动调用绘图事件

在这里插入图片描述

绘图设备QPixmap

QPixmap 对不同平台做了显示的优化

  • QPixmap pix( 300,300) 画板
  • pix.fill( 填充颜色 )
  • 利用画家 往pix上画画 QPainter painter( & pix)
  • 保存 pix.save( “路径”)
//Pixmap绘图设备 专门为平台做了显示的优化
QPixmap pix(300,300);

//填充颜色
pix.fill(Qt::white);

//声明画家
QPainter painter(&pix);
painter.setPen(QPen(Qt::green));;
painter.drawEllipse(QPoint(150,150),100,100);

//保存
pix.save("F:\\pix.png");

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

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

相关文章

科学计算库Numpy快速入门

目录 Numpy概述array数组数组结构数组类型数值运算排序操作数组形状操作数组生成函数四则运算随机模块文件读写 Numpy概述 NumPy 是 Python 中的一个开源数学库&#xff0c;提供了快速且便捷的数组处理功能&#xff0c;可以用来进行科学计算、数据分析、算法开发等多种任务。N…

InnoDB 磁盘结构及表空间 ( Tablespaces )

InnoDB磁盘主要包含Tablespaces&#xff0c;InnoDB Data Dictionary、Doublewrite Buffer、redo log和Undo Logs Tablespaces: 表空间分为系统表空间&#xff08;ibdata1文件&#xff09;、临时表空间、常规表空间、Undo表空间以及file-per-table表空间。系统表空间又包括双写…

CDH6.3.2-组件安装安全认证

HDFS 1.选择自定义。 2.选择HDFS ZK YARN然后点继续。 3.选择安装的主机。 4.审核更改默认就行&#xff0c;点继续。 5.配置HDFS的HA。 安装好以后点击hdfs进入实例就能够看到启动了高可用。 6.启动YARN的高可用。 KAFKA 更具需求修改资源 一直点继续就行了 FlUME HI…

CTF权威指南 笔记 -第二章二进制文件- 2.3 -静态链接

目录 地址空间分配 两个链接的方式 按序叠加 相似节合并 静态链接的详细过程 虚拟内存 重定位文件 静态链接库 地址空间分配 我们把之前的两函数分为两个文件 main.c extern int shared extern vooid fun(int *a,int *b); int main(){int a100;func(&a,&share…

MySQL监控告警及可视化:Zabbix+Percona PMP实现(Part III)

MySQL监控告警及可视化&#xff1a;ZabbixPercona PMP实现&#xff08;Part III&#xff09; 告警配置配置告警邮箱配置告警消息模板配置告警用户配置告警规则告警测试 告警配置 配置告警邮箱 在Zabbix Web前端的 Administration - Media Types - Email 中配置发送告警信息的…

什么是恺撒密码?如何用Python实现它(36)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 猫妹目前在看的&#xff0c;ycl Python等级考试五级教材&#xff0c;有一章是介绍恺撒密码的。 今天&#xff0c;咱们…

2023-5-2面试题学习

1、内存的可见性你了解吗&#xff0c;讲述一下&#xff1f; 内存可见性是指多个线程访问同一共享变量时&#xff0c;在一个线程修改了该变量值后&#xff0c;下一个线程能立即看到这种变化的能力。 如果一个变量在多个线程间共享&#xff0c;那么为了避免出现数据不一致的情况&…

为什么DDD难落地?

为什么DDD难落地&#xff1f; lorne 2023-04-23 视频地址&#xff1a; 为什么DDD难落地&#xff1f;_哔哩哔哩_bilibili 洋葱架构图&#xff1a; DDD能解决什么问题&#xff1f; 其实DDD的核心是&#xff1a;提升业务的聚合性、提升业务的拓展性。 DDD的错误认知&#xff…

CentOS7安装和部署Jenkins

安装Java环境 检查旧版&#xff1a; rpm -qa | grep java若已经安装了旧版本&#xff0c;则需要先删除&#xff0c;删除方法&#xff1a; rpm -qa nodeps [java package]安装新版&#xff1a; yum install java-11-openjdk yum install java-11-openjdk-devel&#xff08;开…

07 KVM虚拟机引导固件安装

文章目录 07 KVM虚拟机引导固件安装7.1 概述7.2 安装方法7.2.1 安装edk软件包7.2.2 查询edk软件是否安装成功 07 KVM虚拟机引导固件安装 7.1 概述 针对不同的架构&#xff0c;引导的方式有所差异。x86支持UEFI&#xff08;Unified Extensible Firmware Interface&#xff09;…

MySQL示例数据库(MySQL Sample Databases) 之 World数据库

文章目录 MySQL示例数据库(MySQL Sample Databases) 之 World数据库官方示例数据介绍World数据库World 数据库安装world-db/world.sql的脚本内容参考 MySQL示例数据库(MySQL Sample Databases) 之 World数据库 官方示例数据介绍 MySQL 官方提供了多个示例数据库&#xff0c;在…

【致敬未来的攻城狮计划】— 连续打卡第十九天:RA2E1串口通信基础知识

系列文章目录 1.连续打卡第一天&#xff1a;提前对CPK_RA2E1是瑞萨RA系列开发板的初体验&#xff0c;了解一下 2.开发环境的选择和调试&#xff08;从零开始&#xff0c;加油&#xff09; 3.欲速则不达&#xff0c;今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

什么是GPT模型,GPT下载和国内镜像

什么是GPT模型&#xff0c;GPT模型是通过预训练的方式&#xff0c;采用无监督学习方式&#xff0c;大量语料输入&#xff0c;经过多次训练后得到模型。它能够自动学习并理解自然语言中的语义、句法和语法信息&#xff0c;并可以用于文本生成、对话系统、情感分析、机器翻译等自…

HTTP第二讲——HTTP相关概念

与HTTP 相关的各种应用 1.网络世界 实际的互联网是由许许多多个规模略小的网络连接而成的&#xff0c;这些“小网络”可能是只有几百台电脑的局域网&#xff0c;可能是有几万、几十万 台电脑的广域网&#xff0c;可能是用电缆、光纤构成的固定网络&#xff0c;也可能是用基站、…

SQL之SQL索引

文章目录 一、索引概述介绍演示优缺点 二、索引结构二叉树B-Tree (多路平衡查找树)BTreeHash 三、索引分类四、索引语法五、SQL性能分析SQL执行频率慢查询日志profile详情 索引使用原则验证索引效率最左前缀法则索引列运算字符串不加引号模糊查询or连接的条件数据分布影响 .SQL…

[LeetCode周赛复盘] 第 103 场双周赛20230429

[LeetCode周赛复盘] 第 103 场双周赛20230429 一、本周周赛总结2656. K 个元素的最大和1. 题目描述2. 思路分析3. 代码实现 2657. 找到两个数组的前缀公共数组1. 题目描述2. 思路分析3. 代码实现 2658. 网格图中鱼的最大数目1. 题目描述2. 思路分析3. 代码实现 2659. 将数组清…

二分(整数二分 浮点数二分)

目录 一、整数二分 模板 右边界二分查找&#xff08;左开右闭&#xff09; 左边界二分查找&#xff08;左闭右开&#xff09; 应用 数的范围 二、浮点数的二分 模板 应用 算术平方根 三、习题 1.数的三次方根 一、整数二分 tip&#xff1a;满足单调性的数组一定可以…

【Linux】进程优先级 + 环境变量

文章目录 &#x1f4d6; 前言1. 进程优先级1.1 什么是优先级&#xff1a;1.2 如何修改优先级&#xff1a; 2. 进程的其他概念2.1 竞争性与独立性&#xff1a;2.2 并行与并发&#xff1a;2.3 进程间优先级的体现&#xff1a;2.4 O(1) 调度算法&#xff1a;2.4 进程上下文&#x…

C语言进阶——数据在内存中的存储,你知道吗?

今天我们深度剖析数据在内存中的存储&#xff1a; 重点知识&#xff1a; 1、数据类型详细介绍 2、整形在内存中的存储&#xff1a;原码、反码、补码 3、大小端字节序介绍及判断 4、浮点型在内存中的存储解析 之前我们涉及关于这一部分的知识只是大致的进行讲解&#xff0…

网络编程:UDP socket

文章目录 阅读前导 服务端定义日志框架成员属性服务端框架 初始化服务器创建套接字绑定 运行服务端读取数据参数解读 处理数据向客户端发送响应数据关闭文件描述符 客户端定义创建套接字绑定发送数据接收服务器的响应数据关闭文件描述符 测试1本地环回作用 本地测试netstat 指令…