新建一个Qt项目,在 .h 文件中写入

#pragma once

#include <QtWidgets/QWidget>
#include "ui_xuexi.h" #include "QMouseEvent"
#include "QKeyEvent"
#include "QPainter" class xuexi : public QWidget
{
Q_OBJECT public:
xuexi(QWidget *parent = Q_NULLPTR); void mousePressEvent(QMouseEvent*e); // 按下
void mouseMoveEvent(QMouseEvent*e); // 移动
void mouseReleaseRvent(QMouseEvent*e); // 释放 void paintEvent(QPaintEvent* ); private:
Ui::xuexiClass ui; QPixmap pix;
QPoint lastPoint;
QPoint endPoint;
};

.cpp

#include "xuexi.h"

xuexi::xuexi(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this); resize(600, 500);
pix = QPixmap(200, 200);
pix.fill(Qt::white);
} void xuexi::mousePressEvent(QMouseEvent*e)
{
if (e->button() == Qt::LeftButton)
{
lastPoint = e->pos();
}
} void xuexi::mouseMoveEvent(QMouseEvent*e)
{
if (e->buttons() == Qt::LeftButton)
{
endPoint = e->pos();
update();
}
} void xuexi::mouseReleaseRvent(QMouseEvent* e)
{
if (e->button() == Qt::LeftButton)
{
endPoint = e->pos();
update();
}
} void xuexi::paintEvent(QPaintEvent*)
{
QPainter pp(&pix);
pp.drawLine(lastPoint, endPoint);
lastPoint = endPoint; QPainter painter(this);
painter.drawPixmap(0, 0, pix);
}

编译后就是一个简易的涂鸦板

Qt 实现涂鸦板一:简易涂鸦板的更多相关文章

  1. JSP简易留言板

    写在前面 在上篇博文JSP内置对象中介绍JSP的9个内置对象的含义和常用方法,但都是比较理论的知识.今天为大家带来一个小应用,用application制作的简易留言板. 包括三个功能模块:留言提交.留 ...

  2. DOM操作相关案例 模态对话框,简易留言板,js模拟选择器hover,tab选项卡,购物车案例

    1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <h ...

  3. 原生node实现简易留言板

    原生node实现简易留言板 学习node,实现一个简单的留言板小demo 1. 使用模块 http模块 创建服务 fs模块 操作读取文件 url模块 便于path操作并读取表单提交数据 art-tem ...

  4. ubuntu 交叉编译qt 5.7 程序到 arm 开发板

    ubuntu 交叉编译qt 5.7 程序到 arm 开发板平台1 ubuntu 12.042 arm-linux-gcc 4.5.13 QT 5.74 开发板210 armcortex-A8 一 概述 ...

  5. Flask学习之旅--简易留言板

    一.写在前面 正所谓“纸上得来终觉浅,方知此事要躬行”,在看文档和视频之余,我觉得还是要动手做点什么东西才能更好地学习吧,毕竟有些东西光看文档真的难以理解,于是就试着使用Flask框架做了一个简易留言 ...

  6. php实现简易留言板效果

    首先是Index页面效果图 index.php <?php header('content-type:text/html;charset=utf-8'); date_default_timezo ...

  7. iTOP-4418开发板和6818开发板-第五路串口介绍

    iTOP-4418开发板和6818开发板 的除去默认 4 个串口的配置和用法. 4418 的开发板最多支持 5 路串口,如下图所示,4418 的 datasheet.   6818 的开发板最多支持 ...

  8. 【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍

    前序系列文章>>> [涂鸦物联网足迹]涂鸦云平台标准指令集 开放消息平台主要通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求. 一 ...

  9. Android应用开发实例篇(1)-----简易涂鸦板

    链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/03/2378328.html 一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想 ...

  10. 微信小程序实现简易留言板

    微信小程序现在很火,于是也就玩玩,做了一个简易的留言板,让大家看看,你们会说no picture you say a j8 a,好吧先上图. 样子就是的,功能一目了然,下面我们就贴实现的代码,首先是H ...

随机推荐

  1. React时间转换为具体的年月日上午下午

    export default class index extends Component { constructor() { super(); this.state = { date: new Dat ...

  2. VIM初使化

    vim ~/.vimrc #设置编码 set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 #显示行号 set number #一个tab为4个空格 ...

  3. 探索图片与Base64编码的优势与局限性

    一.图片和Base64编码的关系: 图片是一种常见的媒体文件格式,可以通过URL进行访问和加载. Base64编码是一种将二进制数据转换为ASCII字符的编码方式,可以将图片数据转换为字符串形式. 图 ...

  4. 手机端User-agent

    转载: http://www.fynas.com/ua 设备 系统 浏览器 User-Agent vivo X20Plus A Android 手机百度 Mozilla/5.0 (Linux; And ...

  5. 学习ASP.NET Core Blazor编程系列文章之目录

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  6. k8s通过help、dry-run、explain提高编写yaml效率

    在Kubernetes(k8s)环境中,help.dry-run和explain命令可以帮助你提高编写YAML文件的效率.这些命令提供了关于资源定义.命令用法和字段说明的信息,从而让你能够更快速.更准 ...

  7. Django使用本地css/js文件的基本流程

     在网上看了很多说Django如何使用本地css/js的文章, 很多都是说的不是很清楚. 今天终于自己来验证一个能用的了, 记录下 在manager.py同层级下创建static文件夹, 里面放上cs ...

  8. PAT 甲级【1013 Battle Over Cities】

    本题就是dfs.连通图个数-2: 但是java慢,最后一个case 超时 import java.io.*; import java.util.HashSet; import java.util.Se ...

  9. 5G+实时云渲染,让元宇宙应用触手可及

    从2021年初被称为"元宇宙第一股"的罗布乐思(Roblox)正式在纽交所上市,到2021年10月Facebook更名为"Meta"宣布进军元宇宙,再到如今各大 ...

  10. eviacam在Arch/Manjaro Linux下的安装

    安装base-devel 安装编译工具,默认的依赖里没有编译工具 sudo yay -S base-devel 如果安装编译工具,会报类似下面的错误: 安装eviacam yay -S eviacam ...