Qt 实现涂鸦板二:实现放大功能

技术Qt 实现涂鸦板二:实现放大功能 Qt 实现涂鸦板二:实现放大功能在一的基础上改造:
.h 文件#pragma once#include QtWidgets/QWidget
#include "ui

夸脱实现涂鸦板二:实现放大功能

在一的基础上改造:h文件

#pragma一次

#包含QtWidgets/QWidget

#包含' ui_xuexi.h '

#包含" QMouseEvent "

#包含" QKeyEvent "

#包括“QPainter”

#包括qbutton '

习雪:级公共QWidget

{

Q_OBJECT

公众号:

习雪(QWidget * parent=Q _ NULLPTR);

void MousePresent(QMouseEvent * e);//按下

void MousemoveEvent(QMouseEvent * e);//移动

void mouseReleaseRvent(QMouseEvent * e);//释放

void paint事件(qpaint事件*);

公共槽3360

void zoomIn();//放大

私人:

Ui:xuexiClass ui

QPixmap pix

QPoint lastPoint

QPoint endPoint

整数标度;//放大倍数

q按钮*按钮;

};卡片打印处理机(卡片打印处理器的缩写)文件

#包括习雪。h

学习机:习雪(QWidget *家长版)

: QWidget(父)

{

ui。setupui(这个);

调整大小(600,500);

pix=QPixmap(200,200);

pix。填充(Qt :白色);

比例尺=1;

按钮=新的qbutton(' zoomIn ',this);

按钮移动(500,450);

连接(按钮、信号(点击())、此、插槽(zoomIn()));

}

void徐希:3360 mousepresevent(QMouseEvent * e)

{

if(e-button()==Qt :左按钮)

{

最后一点=e-pos();

}

}

void徐希:3360 mousemoveevent(qmouseeevent * e)

{

if(e-button()==Qt :左按钮)

{

endPoint=e-pos();

update();

}

}

void徐希:3360 moussereleaservent(Qmouseevent * e)

{

if(e-button()==Qt :左按钮)

{

endPoint=e-pos();

update();

}

}

作废徐希:油漆事件(Qpaint事件*)

{

//第一种:效果差点

/* Qpainter PP(pix);

pp.drawLine(lastPoint/scale,EndPoint/scale);

lastPoint=endPoint

QPainter画师(本);

画家。比例尺(比例尺,比例尺);

画家。绘制位图(0,0,pix);*/

//第二种:效果更好

如果(规模!=1)

{

QPixmap copyPix(pix。size()* scale);

QPainter pter(复制pix);

比例尺(比例尺,比例尺);

彼得。绘制位图(0,0,pix);

pix=copyPix

比例尺=1;

}

qpenger PP(pix);

pp.scale(标度,标度);

pp.drawLine(lastPoint/scale,EndPoint/scale);

lastPoint=endPoint

QPainter画师(本);

画家。绘制位图(0,0,pix);

}

void xuexi:zoomIn()

{

比例尺*=2;

update();

}

这里的放大,写了两种实现方法:

方法一:将涂鸦后的图片放大,这样虽然可以实现,但是放大后,像素个数就表少了,画质就变差了,效果不是很好。

方法二:是将画布放大,这样像素个数不会变少,画质就高些,效果更好

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/70028.html

(0)

相关推荐

  • 用锲而不舍造句,锲而不舍的“而”字是什么意思

    技术用锲而不舍造句,锲而不舍的“而”字是什么意思“而”应为表假设的连词用锲而不舍造句。 这个词来自“锲而舍之,朽木不折,锲而不舍,金石可镂”(《劝学》-荀子); 我们再来看而的用法,“而”在文言文中常用作连词,但连词的关

    生活 2021年10月24日
  • int和Integer缓存的实现是怎样的

    技术int和Integer缓存的实现是怎样的今天就跟大家聊聊有关int和Integer缓存的实现是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。int相信我

    攻略 2021年11月24日
  • 怎么用javascript实现单选表单

    技术怎么用javascript实现单选表单这篇文章主要介绍“怎么用javascript实现单选表单”,在日常操作中,相信很多人在怎么用javascript实现单选表单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年11月18日
  • 如何利用Eclipse编辑中文资源文件

    技术如何利用Eclipse编辑中文资源文件这篇文章主要为大家展示了“如何利用Eclipse编辑中文资源文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用Eclipse

    攻略 2021年11月28日
  • MySQL如何快速查看原始SQL语句

    技术MySQL如何快速查看原始SQL语句这篇文章主要讲解了“MySQL如何快速查看原始SQL语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL如何快速查看原始S

    攻略 2021年11月9日
  • 怎样使用HLAscan进行HLA分型

    技术怎样使用HLAscan进行HLA分型这篇文章将为大家详细讲解有关怎样使用HLAscan进行HLA分型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HLAScan是由韩

    攻略 2021年11月10日