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)

相关推荐

  • BeanDefinition的原理是什么

    技术BeanDefinition的原理是什么这期内容当中小编将会给大家带来有关BeanDefinition的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、BeanDefi

    攻略 2021年12月3日
  • 英语代词表格归类,关于英语中的基本语法句型的归类

    技术英语代词表格归类,关于英语中的基本语法句型的归类英语五大基本句型基本概念:与汉语相似,英语句子是由主语(subject), 谓语动词(verb),宾语(object), 表语(predicative),状语(adve

    生活 2021年10月28日
  • SpringBoot整合Redisson如何实现分布式锁

    技术SpringBoot整合Redisson如何实现分布式锁这篇文章将为大家详细讲解有关SpringBoot整合Redisson如何实现分布式锁,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所

    攻略 2021年11月13日
  • 面向对象的绑定方法和属性的增删改查

    技术面向对象的绑定方法和属性的增删改查 面向对象的绑定方法和属性的增删改查目录一:绑定方法二:属性的查找顺序
    一:绑定方法是一个函数就应该有一个参数,方便对象只要一调就能够传进来定义类
    class St

    礼包 2021年12月3日
  • 怎样分析SpringMVC中的HandlerAdapter

    技术怎样分析SpringMVC中的HandlerAdapter这篇文章给大家介绍怎样分析SpringMVC中的HandlerAdapter,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Dispatc

    攻略 2021年12月2日
  • 怎样用Mysql show processlist 排查问题

    技术怎样用Mysql show processlist 排查问题怎样用Mysql show processlist 排查问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可

    攻略 2021年10月25日