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)

相关推荐

  • 树莓派的安装过程是怎样的

    技术树莓派的安装过程是怎样的今天就跟大家聊聊有关树莓派的安装过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先烧录SD卡我的是Debian系统,使用d

    攻略 2021年11月19日
  • 怎么处理数据库中文字符集乱码

    技术怎么处理数据库中文字符集乱码本篇内容主要讲解“怎么处理数据库中文字符集乱码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么处理数据库中文字符集乱码”吧!一、问题描述

    攻略 2021年11月11日
  • Sequoiadb数据库快照的字段含义是什么(数据库快照的作用是什么)

    技术Sequoiadb数据库快照的字段含义是什么这篇文章主要介绍“Sequoiadb数据库快照的字段含义是什么”,在日常操作中,相信很多人在Sequoiadb数据库快照的字段含义是什么问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年12月22日
  • 如何解决interval 分区表clob默认表空间指定问题

    技术如何解决interval 分区表clob默认表空间指定问题这篇文章将为大家详细讲解有关如何解决interval 分区表clob默认表空间指定问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后

    攻略 2021年11月30日
  • oracle rac环境安装目录权限被修改乱了怎么办

    技术oracle rac环境安装目录权限被修改乱了怎么办这篇文章将为大家详细讲解有关oracle rac环境安装目录权限被修改乱了怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在

    攻略 2021年12月4日
  • yum本地及远程仓库搭建

    技术yum本地及远程仓库搭建 yum本地及远程仓库搭建Linux中安装软件的三种方式
    1、哪三种方式rpm安装
    yum安装
    源代码编译安装2、区别
    ? rpm安装类似于windows中的安装包,下载下来

    礼包 2021年12月17日