涂鸦板练习(20200214)
1. 头文件
#include <QWidget>
#include <QPainter>
#include <QMouseEvent>
#include <QDebug>class MainWidget : public QWidget
{Q_OBJECTpublic:MainWidget(QWidget *parent = 0);~MainWidget();
private:QPixmap pix;QPoint lastPoint;QPoint endPoint;
protected:void paintEvent(QPaintEvent *event);void mouseMoveEvent(QMouseEvent *event);void mousePressEvent(QMouseEvent *event);void mouseReleaseEvent(QMouseEvent *event);
};
2. cpp文件
#include "mainwidget.h"MainWidget::MainWidget(QWidget *parent): QWidget(parent)
{resize(600, 500); //窗口大小设置为600*500pix = QPixmap(200, 200);pix.fill(Qt::white);}MainWidget::~MainWidget()
{}void MainWidget::paintEvent(QPaintEvent *event)
{QPainter pp(&pix); // 根据鼠标指针前后两个位置就行绘制直线pp.drawLine(lastPoint, endPoint); // 让前一个坐标值等于后一个坐标值,这样就能实现画出连续的线lastPoint = endPoint;QPainter painter(this);painter.drawPixmap(0, 0, pix);
}void MainWidget::mouseMoveEvent(QMouseEvent *event)
{if (event->buttons() == Qt::LeftButton){endPoint = event->pos();update();}
}void MainWidget::mousePressEvent(QMouseEvent *event)
{if (event->button() == Qt::LeftButton) {lastPoint = event->pos();}
}void MainWidget::mouseReleaseEvent(QMouseEvent *event)
{if (event->button() == Qt::LeftButton){endPoint = event->pos();update();}
}
参考资料:
1. http://shouce.jb51.net/qt-beginning/21.html
2. mouseMoveEvent中判断鼠标状态
涂鸦板练习(20200214)相关推荐
- 【Qt】2D绘图之涂鸦板
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 程序设计(基本功能) 04. 程序设计(放大功能) 05. 程序设计(放大功能) 06. 附录 01. 概述 结合前面所学 ...
- [Qt教程] 第17篇 2D绘图(七)涂鸦板
[Qt教程] 第17篇 2D绘图(七)涂鸦板 楼主 发表于 2013-5-2 21:37:41 | 查看: 1255| 回复: 16 涂鸦板 版权声明 该文章原创于Qter开源社区(www.qter ...
- UI进阶--Quartz2D和触摸事件的简单使用:简易涂鸦板
需求:实现一个简易的涂鸦板应用,使用鼠标在涂鸦板内拖动即可进行涂鸦,点击保存按钮,可以把完成的涂鸦保存,点击回退按钮可以向后退回一步,点击清空可以让涂鸦板清空. 实现步骤: 1.布局storyboar ...
- 开始新的blog之旅--flash3,0涂鸦板保存,撤销功能
一直以来都是在百度写的博客,今天不知道百度是哪抽风.居然把我的博客给封了,上贴吧去发泄一番,结果帖子都给删了. 不得不说你百度厉害,你自己犯的错误.让我们这些用户跟着受罪.我看今天很多博客都被封了,都 ...
- H5小游戏 - canvas涂鸦板
H5小游戏 - 涂鸦板 效果截图: html代码如下: <!DOCTYPE html> <html><head><meta charset="utf ...
- android 简易涂鸦板,canvas实现的简易涂鸦板效果
用canvas实现的简易涂鸦板效果,用鼠标点击在画布上随意涂鸦 涂鸦 *{ margin: 0; padding: 0; } #canvas1{ box-shadow: 0 5px 40px blac ...
- Android应用开发实例篇(1)-----简易涂鸦板
一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想到要把它在Android上实现,呵呵,既简单又有趣. 二.实现 新建工程MyWall,修改/res/layout/main.xml文件 ...
- HTML5实现涂鸦板
最近闲的,看了看html5,强大的绘图功能让我惊奇,于是,写了个小玩意---涂鸦板,能实现功能有:画画,改色,调整画笔大小 html5的绘图可以分为点,线,面,圆,图片等,点和线,这可是所有平面效果的 ...
- 电脑PHP动画制作画板,涂鸦板简单实现 Html5编写属于自己的画画板
这篇文章主要教大家如何使用Html5编写属于自己的画画板,进行绘画.调整颜色等操作,感兴趣的小伙伴们可以参考一下 最近了解到html5强大的绘图功能让我惊奇,于是,写了个小玩意---涂鸦板,能实现功能 ...
- Android小程序-涂鸦板
最近android课老师布置了一个课后作业,是实现android涂鸦板的功能, 然后自己写了一个简单的涂鸦板,可以实现选择颜色.尺寸.清屏的功能. 首先是效果图: 主要是使用Canvas和Paint来 ...
最新文章
- linux中使用yum安装主程序包,linux使用yum对程序包管理相关知识
- randomAccessFile
- 蚂蚁金服面试经历-临场发挥
- C#调用浏览器的原理及实现浅析
- numpy矩阵计算GPU加速库:cupy
- 请查收!深度学习超详细发展路线大公开!
- Yuhao and a Parenthesis
- c语言源程序文件.c如何保存,急求如何将下列C语言程序数据存储到文件中?
- 如何让程序员变得没朋友
- 浏览器解析html全过程详解
- 获取微信的access_tokey,处理json格式的数据
- 计算机网络南京邮电大学,南京邮电大学计算机网络.docx
- 奥多朗WIFI 插座
- 重磅开源!平安产险提出TableMASTER:表格识别大师
- python 回溯法 01背包问题_01背包问题(回溯法)python实现
- sencha touch总结
- hashtab:为文件属性添加一个数字指纹
- 【设计模式11】备忘录和解释器模式 SpelExpressionParser
- 一种时空无监督的事故检测方法
- MATLAB图形加标注的基本方法入门简介
热门文章
- boost::units模块测试元函数 is_unit, is_quantity, is_dimension_list ....
- boost::units模块实现使用自动前缀的简要示例
- boost::mp11::mp_inherit相关用法的测试程序
- boost::math模块非有限信号 NaN 环回测试
- boost::math::arcsine用法的测试程序
- Boost:双图bimap分配的测试程序
- OpenCV阈值范围Threshold inRange的实例(附完整代码)
- Qt Creator从Blender导出3D资产
- c++使用Vigenere加解密文本的算法(附完整源码)
- QT的QHoverEvent类的使用