QPanter 绘画
Qpainter 绘图
1 绘图事件 void paintEvent(QPaintEvent *event)
2 声明一个画家对象 QPainter painter(this) this 指定绘图设备
3 画线 圆 矩形 文字等
4 设置画笔 QPen 设置画笔宽度,风格
5 设置画刷 QBrush 设置画刷 风格
QPainter qPainter(this);//实例化画家对象 this 执向的是绘画设备
//画线
qPainter.drawLine(10,10,100,100); QPen pen(QColor(255,222,0));
qPainter.setPen(pen);
pen.setWidth(3);
QBrush qBrush(Qt::cyan);
qPainter.setBrush(qBrush); qPainter.drawEllipse(QPoint(100,100),50,30);
qPainter.drawRect(QRect(200,200,100,100)); qPainter.drawText(QRect(100,200,100,100),"到店下班了 11");
QPainter 高级设置
1 抗锯齿 效率低 画的更精细 painter2.setRenderHint(QPainter::HighQualityAntialiasing);
2 对画家进行移动。painter2.translate(300,20);
3 保存画家状态。painter2.save();
4 还原画家状态 painter2.restore();
//高级
QPainter painter2(this);
painter2.drawEllipse(200,20,100,100);
painter2.translate(300,20);
painter2.setRenderHint(QPainter::HighQualityAntialiasing);
painter2.save();
painter2.drawEllipse(200,20,100,100);
painter2.restore();
painter2.drawEllipse(200,20,100,100);
手动调用一下painter 用update
1 利用画家画图片 drawPixmap(posx,300,QPixmap(":/8by.png"));
widget.h
public:
int posx;
protected:
void paintEvent(QPaintEvent *event);
widget.cpp
\#include "widget.h"
#include "ui_widget.h"
#include<QPaintEvent>
#include<QPainter>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this); posx = 20; connect(ui->pushButton,&QPushButton::clicked,[=](){
update();
posx+=20;
}); } Widget::~Widget()
{
delete ui;
} void Widget::paintEvent(QPaintEvent *event)
{
QPainter qPainter(this);//实例化画家对象 this 执向的是绘画设备
//画线
qPainter.drawLine(10,10,100,100); QPen pen(QColor(255,222,0));
qPainter.setPen(pen);
pen.setWidth(3);
QBrush qBrush(Qt::cyan);
qPainter.setBrush(qBrush); qPainter.drawEllipse(QPoint(100,100),50,30);
qPainter.drawRect(QRect(200,200,100,100)); qPainter.drawText(QRect(100,200,100,100),"到店下班了 11"); //高级
QPainter painter2(this);
painter2.drawEllipse(200,20,100,100);
painter2.translate(300,20);
painter2.setRenderHint(QPainter::HighQualityAntialiasing);
painter2.save();
painter2.drawEllipse(200,20,100,100);
painter2.restore();
painter2.drawEllipse(200,20,100,100); ///////画图////////
QPainter painter3(this);
if(posx > this->width()){
posx= 20;
}
painter3.drawPixmap(posx,300,QPixmap(":/8by.png"));
}
QPanter 绘画的更多相关文章
- Processing基础之绘画
图形 //在(x, y)绘制点 point(x, y); //(x1, y1)到(x2, y2)的一条线 line(x1, y1, x2, y2); rect(x, y, weight, height ...
- html5 canvas绘画时钟
本示例使用HTML5 canvas,模拟显示了一个时钟, 请使用支持HTML5的浏览器预览效果: HTML部分: <!DOCTYPE html> <html lang="e ...
- Canvas绘画功能(待补充)
由于项目的前端需要用户手绘输入,所以我们利用Canvas控件做绘画面板,并且实现了许多功能,包括手绘笔画,清空画板,上传手绘图,下载手绘图,记录用户笔画,上传背景图.以后有时间都写到这篇博客中,今天晚 ...
- GUI之绘画控制
一.绘制的动力 GUI的绘画是根据消息动作驱动的 主循环应该是 二.绘制的过程 绘画过程应该是这样的: 首先窗口存在上下层关系-> 在绘制时应该从底部窗口开始绘制,逐一绘制 下面是一些特殊的窗口 ...
- 该如何认识ZBrush中的2.5D绘画
ZBrush不仅对3D行业进行了改革.让艺术家感到无约束自由创作的3D设计,同时它还是一个强大的绘画程序!基于强大的Pixol功能,ZBrush®将数字绘画提升到一个新的层次.如下图所示,插画功能主要 ...
- iOS使用Core Graphics和UIBezierPath绘画
通过UIView的子类的- (void)drawRect:(CGRect)rect 函数可用对视图进行重新绘画: 要重新绘画可以通过Core Graphics和UIBezierPath来实现. 1.通 ...
- iOS: 使用CGContextRef,CGPath和UIBezierPath来绘画
这三种东西:CGContextRef,CGPath和UIBezierPath.本质上都是一样的,都是使用Quartz来绘画.只不过把绘图操作暴露在不同的API层面上,在具体实现上,当然也会有一些细小的 ...
- SDL2.0的几何图行绘画
SDL2.0的几何图形绘画 通过SDL_Window.SDL_Renderer.SDL_Texture三者实现了简单的几何图形绘画. 包括了SDL_RenderDrawPoint.SDL_Render ...
- android绘画折线图二
紧接着android绘画折线图一,下面来介绍第二种方法,使用该方法,首先需要一个Androidplot-core-0.4.3-release.jar,该jar包之后也包含在项目源码中 建立一个andr ...
随机推荐
- 前端ES6 特性兼容查询
ES6 http://kangax.github.io/compat-table/es6/ ES5 http://kangax.github.io/compat-table/es5/ ES 2016+ ...
- .NET中按预定顺序执行任务
更新记录 本文迁移自Panda666原博客,原发布时间:2021年7月1日. 一.说明 在.NET中线程可以定义按先后顺序进行执行,适合部分有先后次序的业务逻辑.Task也可以按照预定义的先后顺序执行 ...
- 离线环境使用NuGet
更新记录 本文迁移自Panda666原博客,原发布时间:2021年5月13日. 在Visual Studio中直接使用GUI的方式操作NuGet包非常的方便.如果喜欢命令行,也可以使用包管理控制台或者 ...
- shell 问题记录
工作中写了个 RestAPI 接口,然后想通过 crontab 任务,去定时调用接口.发现去拼接 post 请求真的不容易.对于单引号,双引号的使用.很懵,示例代码如下:对于 '$line' 处,单引 ...
- DAST 黑盒漏洞扫描器 第四篇:扫描性能
0X01 前言 大多数安全产品的大致框架 提高性能的目的是消费跟得上生产,不至于堆积,留有余力应对突增的流量,可以从以下几个方面考虑 流量:减少无效流量 规则:减少规则冗余请求 生产者:减少无效扫描任 ...
- 等待唤醒机制代码实现_包子类&包子铺类和等待唤醒机制代码实现_吃货类&测试类
资源类:包子类 设置包子的属性 皮 陷 包子的状态:有 true 没有 false public class BaoZi { //皮 String pi; //陷 String xian; //包子的 ...
- 集合-新特性foreach循环遍历集合或项目
1.增强for循环对集合的遍历 点击查看代码 @Test //集合遍历 public void test3(){ Collection coll = new ArrayList(); coll.add ...
- idea 分 环境 配置 线上 测试 本地
在resources 新建application.properties 分开在resources 新建的多个环境的文件 #测试环境 applicaion-test.properties #开发环境 a ...
- 乐观锁和悲观锁在kubernetes中的应用
数据竞争和竞态条件 Go并发中有两个重要的概念:数据竞争(data race)和竞争条件(race condition).在并发程序中,竞争问题可能是程序面临的最难也是最不容易发现的错误之一. 当有两 ...
- 关于分组查询的一道sql题
背景:想做一道sql的测试题,题目为: 按照角色分组算出每个角色按有办公室和没办公室的统计人数(列出角色,数量,有无办公室,注意一个角色如果部分有办公室,部分没有需分开统计) 如下,构造测试环境与对应 ...