1   涂鸦板函数

就是事先设置画板,经过画图Qpainter 进行图形绘制,而后根据鼠标的轨迹进行绘制Point 而后调用upate进行图形更新从而实现涂鸦板ui

2 讲解源码 this

#include "mainwindow.h"

#include "ui_mainwindow.h"get

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);源码

resize(600,500);

pix=QPixmap(200,200);

pix.fill(Qt::white);

scale=1;it

//放大按钮

btn=new QPushButton(this);

btn->setText(tr("scale"));event

//按钮位置

btn->move(500,450);ast

//槽机制消息

QObject::connect(btn,SIGNAL(clicked(bool)),this,SLOT(ZooIn()));

}cli

MainWindow::~MainWindow()

{

delete ui;

}date

void MainWindow::paintEvent(QPaintEvent *){

//pix 在头文件中定义      pix的大小就是板子的大小

QPainter paint(&pix);

paint.drawLine(lastpoint,endpoint);

lastpoint=endpoint;

QPainter paint2(this);

//  改变大小   是经过 update 中 调用 paintEvent函数实现图形更新的

paint2.scale(scale,scale);

paint2.drawPixmap(0,0,pix);

}

void MainWindow::mousePressEvent(QMouseEvent *event){

if(event->button()==Qt::LeftButton)

lastpoint=event->pos();

endpoint=lastpoint;

}

void MainWindow::mouseReleaseEvent(QMouseEvent *event){

if(event->button()==Qt::LeftButton)

{

endpoint=event->pos();

update();

}

}

void MainWindow::mouseMoveEvent(QMouseEvent *event){

if(event->buttons()&Qt::LeftButton)

{

endpoint=event->pos();

update();

}

}

//消息处理

void MainWindow::ZooIn(){

scale*=2;

update();

}

qt实现涂鸦板_Qt之旅--- 10 涂鸦板相关推荐

  1. WCF后续之旅(10): 通过WCF Extension实现以对象池的方式创建Service Instance

    我们知道WCF有3种典型的对service instance进行实例化的方式,他们分别与WCF的三种InstanceContextMode相匹配,他们分别是PerCall,PerSession和Sin ...

  2. Linux 之旅 10:Shell 脚本

    Linux 之旅 10:Shell 脚本 (图片来自shell/bash脚本编程) Linux 上的 Shell 脚本可以看做是类似于Windows上的批处理程序(.bat)一样的东西,其本质就是将一 ...

  3. 小猪的Python学习之旅 —— 10.三分钟上手Requests库

    小猪的Python学习之旅 -- 10.三分钟上手Requests库 标签:Python 一句话概括本文: 本节讲解Requests库的常见使用,以及一个实战项目: 扒取某一篇微信文章里所有的图片,视 ...

  4. android中留言板功能,js 实现简易留言板功能

    无标题文档 li{list-style:none;} li{position:relative;width:500px;} a{position:absolute;right:10px;} var c ...

  5. 鸿蒙开发板能干什么,【鸿蒙开发板试用报告】用OLED板实现FlappyBird小游戏(中)...

    小伙伴们久等了,在上一篇<[开发板试用报告]用OLED板实现FlappyBird小游戏(上)>中,我们本着拿来主义的原则,成功的让小鸟在OLED屏幕上自由飞翔起来,下面我们将加入按钮交互功 ...

  6. python 物联网开发板_物联网学什么开发板好?

    可以试试我们的三明治开发板呀!比较容易上手,你可以使用它轻松创建一款通过智能音箱语音或者手机App控制的智能硬件产品,喜欢玩DIY的知友可以体验下. 配合我们的IoT开发平台,即可快速完成智能产品de ...

  7. ARM开发板 瑞芯微RK3288开发板

    产品简介 G3288 开发板由邮票孔核心板,底板和液晶板三大块组成,核心板采用 8 层板工艺设计, 确保稳定可靠,可以批量用于平板电脑,车机,学习机,POS机,游戏机,行业监控等多种领域.主控为Cor ...

  8. 惠普触控板使用指南_Windows10触控板的正确使用方法

    如何正确使用Windows10系统的触控板?Windows的触控板虽然不及MacBook,但是它的功能也不能小觑哦!如果你觉得Windows的触控板太LOW了,可能是你的使用方法不对.下面小编给大家分 ...

  9. 选择的串口 _ 不存在或开发板没有连接_PC 和开发板之间传输文件

    8.1 传输文件的多种方法 在嵌入式开发中,涉及交叉编译:在 PC 上编译,在开发板上运行.所以就涉及 PC 和开发板之间的文件 传输,方法有多种:网络传输.串口传输.USB 传输,当然,还有最笨的方 ...

  10. php网站留言,php实现网站留言板功能,php实现留言板_PHP教程

    php实现网站留言板功能,php实现留言板 我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的 畅言留言板样式: 网易跟帖样式: 原理 需要在评论表添加两个主要字段 ...

最新文章

  1. 【组队学习】【29期】7. 集成学习(上)
  2. 关系类型总结和对应的注解
  3. 对抗新冠也用「梯度下降」,进化生物学家靠这个预测病毒进化方向
  4. Silverlight与Flash的技术比较(图)
  5. android 方法超时,android socket.io中的发出或确认超时处理?
  6. java if else程序,java – if then else条件评估
  7. 【转载】登录PDMS总是切换到Monitor,这是为什么?!
  8. python定义数据框大小_python – 如何设置框架的最小和最大高度或宽度?
  9. 张本伟:IT人如何收入500万?
  10. Win10电脑怎么恢复出厂设置
  11. 公链,多少资金盘假汝之名以行?
  12. C/C++使用ODBC连接MSSQL数据库
  13. 数组的归一化c语言,如何归一化频率数组
  14. 有哪些小巧舒适的蓝牙耳机?推荐几款小巧且舒适的蓝牙耳机
  15. 狂神mysql笔记 md_MyBatis狂神总结笔记
  16. STM 32的USB时钟的配置
  17. 客快物流大数据项目(八十八):ClickHouse快速入门
  18. B站一键查询视频/分P视频/番剧的弹幕发送者
  19. 【嵌入式】嵌入式设备实现网络功能——综述
  20. 南师大计算机学科评估排名,南京师范大学全国排名,2021南京师范大学排名榜

热门文章

  1. CF1009F Dominant Indices
  2. redis实战【西橙先生】
  3. HTML学生个人网站作业设计:电影网站设计——橙色国外电影(13页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  4. Java集成快递100的订阅服务和根据物流单号查询物流详情的接口
  5. CSS 3之设置图片边框
  6. 网站建设公司该不该把web前端外包出来!精辟
  7. sonar代码质量分析
  8. Got permission denied while trying to connect to the Docker daemon socket
  9. 概率分布F(x)和概率密度f(x)
  10. Mac开发-NSTextView软回车转换为硬回车