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相关推荐

  1. paintevent参数_Qt学习: QPaintEvent和QMouseEvent的简单程序示例

    QMouseEvent下可以被重写的虚函数: 1.void mousePressEvent(QMouseEvent *event); //鼠标键被按下的事件. 2.void mouseReleaseE ...

  2. 管窥MVVMLight Command参数绑定和事件传递

    原文:管窥MVVMLight Command参数绑定和事件传递 前言 由于在实际项目中,业务功能的增加导致软件开发规模在逐渐变大,所以我准备找个Silverlight框架来组织当前项目中的文件,以期能 ...

  3. addeventlistener事件第三个参数 passive_JS DOM 事件流、事件冒泡

    当一个HTML元素触发一个事件时,该事件会在元素结点与根结点之间的路径传播.传播按顺序分为三个阶段:捕获阶段.目标阶段.冒泡阶段,这个传播过程就是 DOM 事件流. 事件冒泡就是当一个HTML元素出发 ...

  4. 【EventBus】事件通信框架 ( 取消注册 | 获取事件参数类型 | 根据事件类型获取订阅者 | 移除相关订阅者 )

    文章目录 一.取消注册订阅者 二.完整代码示例 一.取消注册订阅者 取消注册操作 : 从 Map<Object, List<Class<?>>> typesBySu ...

  5. vue 点击事件传递多个参数_vue传事件参数

    大家好,今天给大家分享的是vue传事件参数,希望大家喜欢. 在vue中传递事件参数还是比较常见的. 当然这种情况基本上是在html中标签中如何写这个问题上大家存在疑问. 那么这里我就分别举例说下. 1 ...

  6. Uploadify 3.2 参数属性、事件、方法函数详解以及配置

    一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...

  7. Uploadify 3.2 参数属性、事件、方法函数详解

    一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass " 按钮样式 buttonCur ...

  8. qt槽函数如何传递多个参数_Qt:在发出信号后尝试将多个引用传递给槽函数

    发出QDoubleSpinBox指定温度的信号 转换为常用温度单位 向所有其他QDoubleSpinBox发送信号以更新它们 从公共温度单位到每个QDoubleSpinBox特定温度单位的转换 醇&g ...

  9. qt为lineedit添加背景图片代码_Qt中事件的理解(2)

    这一章我们继续讲Qt事件--事件的传递 1.创建工程 工程目录如下所示: 创立工程testEvent,主窗口文件以mainwindow命名,子文件以lineedit命名. 2.修改程序 首先将line ...

最新文章

  1. git提交输入账号和密码_GitHub-本地项目提交至GitHub
  2. JQuery-学习笔记04【基础——JQuery基础案例】
  3. html输出text,为什么text();和html();输出结果不一样呢?
  4. 腾讯web前端招聘条件汇总
  5. [置顶] UDP协议---心德(1)
  6. Taro+react开发(88):大写px 控制样式
  7. linux中控和安卓中控哪个比较好,原厂中控和改装中控有什么区别?哪个更好?...
  8. 非线性降维-核主成分分析KPCA
  9. 什么是运营?与产品的关系是怎样的?
  10. HDU 2017 一系列统计数据
  11. [Codeforces 920E]Connected Components?
  12. 视频插帧算法之光流法
  13. vue入门到启动_Vue入门:Vue项目创建及启动
  14. DAS、SAN和NAS三种存储方式
  15. 如何制作win7 U盘安装盘
  16. Android开发实用小技巧九——内嵌WebView的使用(内置浏览器)
  17. 排列组合问题 “n个球放入m个盒子(8种)”
  18. 网上的音乐怎么下载成mp3格式歌曲?这3种一键下载的方法亲测好用!
  19. INFO zkclient.ZkEventThread - Starting ZkClient
  20. MNIST数据集学习

热门文章

  1. 【工作总结】银行应用系统架构(一)
  2. fme结合python-pandas实现图形数据和表格数据的模糊匹配挂接
  3. Flutter 卡片练习
  4. 洛谷 P2307 迷宫
  5. 低代码/零代码的敏捷开发框架
  6. Hello,虚实集成世界
  7. 积分显示服务器累坏了,积分怎么没了?我的新浪积分昨天还有4600多分,今天怎么突然没了 爱问知识人...
  8. 关于微信授权回调域名只能设置一个的解决办法
  9. 服务器下修改mac地址是什么,服务器系统修改mac地址吗
  10. Android音视频之MediaRecorder录制视频