QT5笔记:18 QPainter基本绘图


- 代码
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
setPalette(QPalette(Qt::white));
setAutoFillBackground(true);
}
Widget::~Widget()
{
delete ui;
}
/**
* @brief Widget::paintEvent
* @param event
* @note 主要画了矩形,折线,图片,文字等,设置画刷、笔、字体等
*/
void Widget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
int w = this->width();
int h = this->height();
//抗锯齿不止这两样,其他请按F1
painter.setRenderHint(QPainter::Antialiasing);//图像抗锯齿
painter.setRenderHints(QPainter::TextAntialiasing);//文字抗锯齿
QPen pen;
pen.setColor(QColor(90,60,30,128));
pen.setStyle(Qt::DashDotDotLine);
pen.setWidth(5);
pen.setJoinStyle(Qt::BevelJoin);//边角处如何连接,
painter.setPen(pen);
QBrush brush;
brush.setColor(Qt::green);
brush.setStyle(Qt::CrossPattern);
painter.setBrush(brush);
QImage image(":images/main.jpg");
QFont font;
font.setPointSize(26);
font.setBold(true);
painter.setFont(font);
QRect rect(w/4,h/4,w/2,h/2);
QPoint points[] = {QPoint(w/5,h/5), QPoint(w/2,h*4/5), QPoint(w*4/5,h/5)};
painter.drawRect(rect);
painter.drawImage(rect,image);
painter.drawText(rect, Qt::AlignCenter,"Hello, Kitty!");
pen.setColor(Qt::lightGray);
painter.setPen(pen);
painter.drawPolyline(points, sizeof(points)/sizeof (points[0]));
}
界面

QT5笔记:18 QPainter基本绘图的更多相关文章
- Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel
Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel Ext.Net GridPanel 有两种编辑模式:编辑单元格和编辑行. 单元格编辑: 行编辑: 可以看出,单元格编辑的时候,只 ...
- SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...
- JAVA自学笔记18
JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...
- golang学习笔记18 用go语言编写移动端sdk和app开发gomobile
golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...
- springmvc学习笔记(18)-json数据交互
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...
- cocos2d-x学习笔记(18)--游戏打包(windows平台)
cocos2d-x学习笔记(18)--游戏打包(windows平台) 之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...
- HTML5自学笔记[ 18 ]canvas绘图基础5
获取图像数据:getImgData(x,y,w,h),返回的是一个ImageData对象,这个对象有三个属性保存图像信息:width/height/data.data是一个数组,保存了每个像素的信息, ...
- Linux实战教学笔记18:linux三剑客之awk精讲
Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...
- 《JavaScript高级程序设计》笔记:使用Canvas绘图(15)
基本用法 要使用<canvas>元素,必须先设置其width和height属性,指定可以绘图的区域大小.出现在开始和结束标签中的内容是后备信息,如果浏览器不支持<canvas> ...
- R语言学习笔记(五)绘图(1)
R是一个惊艳的图形构建平台,这也是R语言的强大之处.本文将分享R语言简单的绘图命令. 本文所使用的数据或者来自R语言自带的数据(mtcars)或者自行创建. 首先,让我们来看一个简单例子: ...
随机推荐
- PictureMarkerSymbol透明的问题
由于我使用的是位图图片,所以不可能将图片背景处理成透明.不过还是可以通过参数的设定来达到这种效果. PictureMarkerSymbol pPMS = new PictureMarkerSymbol ...
- Flutter查漏补缺2
Flutter的理念架构 Flutter架构分为三层 参考官方文档 Framework层(dart) flutter engine层(C/C++) embeder层(platform-specific ...
- PDFsharp 1.50
PDFsharp 1.50 Preview Information - PDFsharp & MigraDoc PDFShapr 1.50 修复与改进 支持 Object Streams - ...
- Java的HTTP接口测试框架Gatling
之前讲过的<JHM>是一个java的基准测试框架,一般用于测试jdk里的API.如果要测试http接口,可以使用Gatling. 你可能用过JMeter,也是可以的 原生的Gatling是 ...
- 【Linux】【专项突破】CentOS下软件安装
目录 rpm yum软件仓库 配置文件 缓存处理 清理缓存 重构缓存 查询包的依赖关系 rpm # 普通下载安装 rpm -ivh 包名 # 更新 rpm -Uvh 包全名 # 查询 rpm -q 包 ...
- Qt编写物联网管理平台40-类型种类
一.前言 为了增强本系统的拓展性,做成通用的物联网管理平台,特意将控制器主设备类型.探测器子设备类型.对应种类符号等信息,全部做成表格可自定义添加和修改,这样在控制器信息表和探测器信息表管理的时候,可 ...
- Qt编写物联网管理平台33-设备面板
一.前言 设备面板展示数据,相对于表格展示,可能在一个页面中能够展示的设备数据量少一些,但是有些用户和场景,又需要这种面板的形式,可能更生动形象一些.尤其是经过这么些年的社会的毒打,我的原则是:用户是 ...
- 回顾 2024 年 19 期C#/.NET/.NET Core技术前沿周刊
前言 转眼之间2024年就只剩最后一天了,咱们的C#/.NET/.NET Core技术前沿周刊也从8月份的第 1 期持续更新到现在已经更新到了第 19 期了,今天咱们一起来回顾一下 2024 年 19 ...
- Matlab深度学习
View image files Instructions are in the task pane to the left. Complete and submit each task one at ...
- Python连接远程设备
import paramiko def content_ssh(): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(parami ...