paintevent参数_QT 作图事件 PaintEvent
QT 绘制事件 PaintEvent
对事件的响应是通过信号与槽调用
事件中根据事件触发的条件发出不同的信号
比如:鼠标事件发出clicked与dblclicked等信号
QT中事件是怎么实现的?
QT把事件自己定义成固定的virtual保护函数
这些函数自动被系统调用
1. paintEvent
案例:
1. 覆盖QWidget的paintEvent
绘制gdi(Graphics DrawInterface)
代码:
main.cpp
#include
#include
#include “PaintWidget.h”
int main(int args , char **argv)
{
QApplication app(args , argv);
PaintWidget w;
w.resize(400,400);
w.setVisible(true);
return app.exec();
}
main.pro
TEMPLATE=app
SOURCES=main.cpp PaintWidget.cpp
HEADERS=PaintWidget.h
CONFIG=release qt
QT=core gui
TARGET=main
PaintWidget.h
#ifndef PAINT_WIDGET_H
#define PAINT_WIDGET_H
#include
#include
class PaintWidget:public QWidget
{
protected:
virtual void paintEvent( QPaintEvent * e);
};
#endif
PaintWidget.cpp
#include “PaintWidget.h”
#include
#include
#include
#include
#include
#include
void PaintWidget::paintEvent(QPaintEvent * e)
{
QPoint p[3];
p[0].setX(10);
p[0].setY(10);
p[1].setX(300);
p[1].setY(10);
p[2].setX(145);
p[2].setY(200);
QImage img(“ok.png”);
QPixmap map(“ok.png”);
QBitmap bit=map.createMaskFromColor(QColor(0,0,0));
// QPen pen(QColor(255,0,0));
QBrush br(QColor(0,255,0));
QPen pen();
//纯黑色设置为透明
//进行绘制工作
//1.产生绘制对象QPainter
QPainter g(this); //this参数指定绘制的目标
//2.设置绘制对象的属性
g.setPen(pen);
g.setFont(“楷书”,45,100); //设置字体
//3.进行绘制:图形,图像与字符串
g.drawLine(10,10,400,400);
g.drawArc(10,10,300,300,10*16,120*16);
//前4个参数为弧的外切矩形,参数5,6为起始角度和结束角度,1/16度数
g.drawConvexPolygon(p,3); //参数2为多边形的顶点个数
g.drawEllipase(0,0,this->width(),this->height());
g.drawText(100,100, “this is a maomaochong”);
g.drawImage(10,10,img);
g.drawPixmap(10,10,300,300,bit);
}
QPainter类:
函数分成:
属性函数
背景
刷子
遮罩
笔
字体
绘制函数
图形
空心draw****
实心fill****
图像
字符串
变换函数
translate
scale
rotate 旋转
shear
paintevent参数_QT 作图事件 PaintEvent相关推荐
- paintevent参数_Qt学习: QPaintEvent和QMouseEvent的简单程序示例
QMouseEvent下可以被重写的虚函数: 1.void mousePressEvent(QMouseEvent *event); //鼠标键被按下的事件. 2.void mouseReleaseE ...
- 管窥MVVMLight Command参数绑定和事件传递
原文:管窥MVVMLight Command参数绑定和事件传递 前言 由于在实际项目中,业务功能的增加导致软件开发规模在逐渐变大,所以我准备找个Silverlight框架来组织当前项目中的文件,以期能 ...
- addeventlistener事件第三个参数 passive_JS DOM 事件流、事件冒泡
当一个HTML元素触发一个事件时,该事件会在元素结点与根结点之间的路径传播.传播按顺序分为三个阶段:捕获阶段.目标阶段.冒泡阶段,这个传播过程就是 DOM 事件流. 事件冒泡就是当一个HTML元素出发 ...
- 【EventBus】事件通信框架 ( 取消注册 | 获取事件参数类型 | 根据事件类型获取订阅者 | 移除相关订阅者 )
文章目录 一.取消注册订阅者 二.完整代码示例 一.取消注册订阅者 取消注册操作 : 从 Map<Object, List<Class<?>>> typesBySu ...
- vue 点击事件传递多个参数_vue传事件参数
大家好,今天给大家分享的是vue传事件参数,希望大家喜欢. 在vue中传递事件参数还是比较常见的. 当然这种情况基本上是在html中标签中如何写这个问题上大家存在疑问. 那么这里我就分别举例说下. 1 ...
- Uploadify 3.2 参数属性、事件、方法函数详解以及配置
一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...
- Uploadify 3.2 参数属性、事件、方法函数详解
一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...
- qt槽函数如何传递多个参数_Qt:在发出信号后尝试将多个引用传递给槽函数
发出QDoubleSpinBox指定温度的信号 转换为常用温度单位 向所有其他QDoubleSpinBox发送信号以更新它们 从公共温度单位到每个QDoubleSpinBox特定温度单位的转换 醇&g ...
- qt为lineedit添加背景图片代码_Qt中事件的理解(2)
这一章我们继续讲Qt事件--事件的传递 1.创建工程 工程目录如下所示: 创立工程testEvent,主窗口文件以mainwindow命名,子文件以lineedit命名. 2.修改程序 首先将line ...
最新文章
- git提交输入账号和密码_GitHub-本地项目提交至GitHub
- JQuery-学习笔记04【基础——JQuery基础案例】
- html输出text,为什么text();和html();输出结果不一样呢?
- 腾讯web前端招聘条件汇总
- [置顶] UDP协议---心德(1)
- Taro+react开发(88):大写px 控制样式
- linux中控和安卓中控哪个比较好,原厂中控和改装中控有什么区别?哪个更好?...
- 非线性降维-核主成分分析KPCA
- 什么是运营?与产品的关系是怎样的?
- HDU 2017 一系列统计数据
- [Codeforces 920E]Connected Components?
- 视频插帧算法之光流法
- vue入门到启动_Vue入门:Vue项目创建及启动
- DAS、SAN和NAS三种存储方式
- 如何制作win7 U盘安装盘
- Android开发实用小技巧九——内嵌WebView的使用(内置浏览器)
- 排列组合问题 “n个球放入m个盒子(8种)”
- 网上的音乐怎么下载成mp3格式歌曲?这3种一键下载的方法亲测好用!
- INFO zkclient.ZkEventThread - Starting ZkClient
- MNIST数据集学习