qt鼠标悬停图片放大_[QT]- VS2015+QT5.6.2展示图片,支持放大、缩小、和移动图片...

本文主要介绍,如何使用在VS2015平台上集成QT环境实现一个控件(Widget),该控件可以展示图片,并且该支持滚动鼠标中间放大缩小图片,右键移动鼠标进行图片的拖动。本文将从以下几个部分进行描述:

将QT集成到VS2015平台

自定义控件描述

图片放大、缩小、移动的实现

工程效果

总结

一、 将QT集成到VS2015平台

主要过程:安装QT、配置环境、和安装vs2015插件。在开源社区的一篇博客描述得很清楚,在这里不赘述了。点此跳转到该博客

二、 自定以控件描述

在QT当中没有专门用来展示图片的控件,通常用于展示图片的控件是QLabel,但是该控件不支持图片的缩放移动等功能,所以就自定义一个控件,使其支持上述功能。

先上代码:

qclicklabel.hpp:

#pragma once

#include

#include

#include

#include

class QClickLabel : public QLabel {

Q_OBJECT

signals :

void MouseRelease(QMouseEvent *evt);

void KeyPressed(QKeyEvent *evt);

void MouseMoved(QMouseEvent* evt);

void MousePressed(QMouseEvent* evt);

void MouseDoubliClick(QMouseEvent* evt);

void WheelEvent(QWheelEvent* evt);

public:

QClickLabel(QWidget * parent = Q_NULLPTR): QLabel(parent)

{}

~QClickLabel();

protected:

void mouseReleaseEvent(QMouseEvent*); // listen to mouse event

void mousePressEvent(QMouseEvent*); // listen to mouse event

void mouseMoveEvent(QMouseEvent*); // listen to mouse event

void keyPressEvent(QKeyEvent *); // listen to key press event

void mouseDoubleClickEvent(QMouseEvent *event);

void wheelEvent(QWheelEvent *event);

};

QClickLabel继承于QLabel,该控件能够支持鼠标的点击、移动、释放、双击、和中键滚动事件(代码protected部分定义);同时该控件能够发射出相应的信号(代码signals处定义)

qclicklabel.cpp:

#include "qclicklabel.hpp"

// destructor

QClickLabel::~QClickLabel() {

}

void QClickLabel::mouseReleaseEvent(QMouseEvent *evt)

{

qDebug() << "in function ClickedLabel mouse release" << endl;

emit MouseRelease(evt);

}

void QClickLabel::keyPressEvent(QKeyEvent *evt) {

// listen to key press event

qDebug() << "in function Cli

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值