iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何利用QT实现图片浏览器
  • 641
分享到

如何利用QT实现图片浏览器

2023-07-05 05:07:06 641人浏览 泡泡鱼
摘要

这篇文章主要介绍了如何利用Qt实现图片浏览器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何利用QT实现图片浏览器文章都会有所收获,下面我们一起来看看吧。1、概述案例:制作一个小的图片浏览器,要求可以显示jp

这篇文章主要介绍了如何利用Qt实现图片浏览器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何利用QT实现图片浏览器文章都会有所收获,下面我们一起来看看吧。

1、概述

案例:制作一个小的图片浏览器,要求可以显示jpg、jpeg、png、bmp。可以从电脑上拖动图到窗口并显示出来。 

实现步骤:

创建一个QWidget

在QWidget的构造方法中设置一个QLabel用户显示pixmap

在QWidget的protected中定义三个函数,dragEnterEvent(QDragEnterEvent *event)、dropEvent(QDropEvent *event)、resizeEvent(QResizeEvent *event);并在.cpp中实现这三个方法

在QWidget的构造函数中加入setAccessDrop(true),设置可向窗口拖拽内容

实现dragEnterEvent(拖拽)、dropEvent(拖拽放下)、resizeEvent(窗口重置)

实现第5步的三个方法

在drawEnterEvent中过滤可拖拽的文件

void watershedwindow::dragEnterEvent(QDragEnterEvent *event){    QStringList acceptedFileTypes;    acceptedFileTypes.append("jpg");    acceptedFileTypes.append("jpeg");    acceptedFileTypes.append("bmp");    acceptedFileTypes.append("png");    if(event->mimeData()->hasUrls()&&event->mimeData()->urls().count()==1){        QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());        if(acceptedFileTypes.contains(file.suffix().toLower())){            event->acceptProposedAction();//表明用户可以在窗口部件上拖放对象        }    }}

在dropEvent方法中实现文件拖拽放下后的情况,即显示图片

void watershedwindow::dropEvent(QDropEvent *event){    QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());    if(pixmap.load(file.absoluteFilePath())){        label->setPixmap(pixmap.scaled(label->size(),Qt::KeepAspectRatio,Qt::SmoothTransfORMation));    }else{        QMessageBox::critical(this,tr("Error"),tr("The image file count not be read"));    }}

resizeEvent方法中对图像进行重置

void watershedwindow::resizeEvent(QResizeEvent *event){    Q_UNUSED(event);    if(!pixmap.isNull()){        label->setPixmap(pixmap.scaled(label->size(),Qt::KeepAspectRatio,Qt::SmoothTransformation));    } }

2、代码示例

#include "OpenCV2/opencv.hpp"#include <QWidget>#include <QSize>#include <iOStream>#include <QPixmap>#include <QDragEnterEvent>#include <QDropEvent>#include <QMimeData>#include <QFileInfo>#include <QMessageBox>#include <QResizeEvent>#include <QStringList>#include <QLabel> using namespace cv;using namespace std; class watershedwindow : public QWidget{    Q_OBJECTprivate:    Mat src,gray,result,distanceImage;    QPixmap pixmap;    QLabel *label;public:    explicit watershedwindow(QWidget *parent = nullptr);protected:        void dragEnterEvent(QDragEnterEvent *event);        void dropEvent(QDropEvent *event) ;    void resizeEvent(QResizeEvent *event); signals: };#include "watershedwindow.h" watershedwindow::watershedwindow(QWidget *parent) : QWidget(parent){    this->setAcceptDrops(true);//设置允许向窗口拖入图片    this->setFixedSize(QSize(320,480));    label = new QLabel(this);    label->setFixedSize(this->width(),this->height());}  void watershedwindow::dragEnterEvent(QDragEnterEvent *event){    QStringList acceptedFileTypes;    acceptedFileTypes.append("jpg");    acceptedFileTypes.append("jpeg");    acceptedFileTypes.append("bmp");    acceptedFileTypes.append("png");    if(event->mimeData()->hasUrls()&&event->mimeData()->urls().count()==1){        QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());        if(acceptedFileTypes.contains(file.suffix().toLower())){            event->acceptProposedAction();//表明用户可以在窗口部件上拖放对象        }    }}  void watershedwindow::dropEvent(QDropEvent *event){    QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());    if(pixmap.load(file.absoluteFilePath())){        label->setPixmap(pixmap.scaled(label->size(),Qt::KeepAspectRatio,Qt::SmoothTransformation));    }else{        QMessageBox::critical(this,tr("Error"),tr("The image file count not be read"));    }}  void watershedwindow::resizeEvent(QResizeEvent *event){    Q_UNUSED(event);    if(!pixmap.isNull()){        label->setPixmap(pixmap.scaled(label->size(),Qt::KeepAspectRatio,Qt::SmoothTransformation));    } }}

关于“如何利用QT实现图片浏览器”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“如何利用QT实现图片浏览器”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何利用QT实现图片浏览器

本文链接: https://www.lsjlt.com/news/349864.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用QT实现图片浏览器
    这篇文章主要介绍了如何利用QT实现图片浏览器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何利用QT实现图片浏览器文章都会有所收获,下面我们一起来看看吧。1、概述案例:制作一个小的图片浏览器,要求可以显示jp...
    99+
    2023-07-05
  • Qt怎么实现图片浏览器
    这篇文章主要介绍了Qt怎么实现图片浏览器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Qt怎么实现图片浏览器文章都会有所收获,下面我们一起来看看吧。图片浏览器逻辑实现图片浏览器用到了前面几乎所有的知识,包括窗口...
    99+
    2023-07-05
  • 利用QT实现图片浏览器的示例详解
    目录1、概述2、代码示例3、演示图片1、概述 案例:制作一个小的图片浏览器,要求可以显示jpg、jpeg、png、bmp。可以从电脑上拖动图到窗口并显示出来。  实现步骤: 1.创建...
    99+
    2023-02-23
    QT实现图片浏览器 QT图片浏览器 QT图片
  • Qt实战之实现图片浏览器
    目录图片浏览器逻辑效果图具体实现utils.himage.himage_group.himage_group.cppqimgviewwidget.hqimgviewwidget.cp...
    99+
    2023-03-19
    QT实现图片浏览器 QT图片浏览器 QT图片
  • 基于Qt如何实现SVG图片浏览器
    本篇内容主要讲解“基于Qt如何实现SVG图片浏览器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Qt如何实现SVG图片浏览器”吧!介绍SVG的英文全称是Scalable Vector Gra...
    99+
    2023-07-02
  • 基于Qt实现SVG图片浏览器
    目录介绍一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 .pro文件4.2 添加SvgWindow类4.3 添加SvgWidget类4.4 svgwidget.h头...
    99+
    2022-11-13
  • QT实战之实现图片浏览系统
    目录引言实现功能效果实现图片浏览所用知识实现流程实现环境和UI设计具体实现引言 本系统支持,自动播放,左右拖动切换,点击列表切换,点击按钮切换;是一个标准的图像浏览软件。 Windo...
    99+
    2023-05-17
    QT实现图片浏览系统 QT图片浏览系统 QT图片浏览
  • 如何实现MPBrowser简易图片浏览器
    这篇文章主要介绍“如何实现MPBrowser简易图片浏览器”,在日常操作中,相信很多人在如何实现MPBrowser简易图片浏览器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • Android实现图片浏览器示例
    本文所述为一个基础的Android图片浏览器代码,是仿写Google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理...
    99+
    2022-06-06
    浏览器 示例 图片 Android
  • Android简易图片浏览器的实现
    闲着没事,花了半个小时用这几天发布的部分内容来做一个Android简易图片浏览器小程序,代码设main_activity.xml设计首界面,设计三个按钮并赋予id,然后在MainAc...
    99+
    2022-11-13
  • 如何利用canvas实现图片下载功能来实现浏览器兼容问题
    小编给大家分享一下如何利用canvas实现图片下载功能来实现浏览器兼容问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言:项目中需要实现图片下载功能,第一个想...
    99+
    2023-06-09
  • Android编程实现的超炫图片浏览器
    本文实例讲述了Android编程实现的超炫图片浏览器。分享给大家供大家参考,具体如下: 使用过Android自带的gallery组件的人都知道,gallery实现的效果就是拖动...
    99+
    2022-06-06
    浏览器 图片 Android
  • Qt利用ImageWatch实现图片查看功能
    使用Qt实现ImageWatch图片查看功能,图片放大可见RGB像素值。支持打开大图片,即打开一个几百MB甚至几GB的大图片。 1、什么是ImageWatch Visual Stud...
    99+
    2022-11-13
  • Node怎么实现浏览器预览项目所有图片
    本文小编为大家详细介绍“Node怎么实现浏览器预览项目所有图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node怎么实现浏览器预览项目所有图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在前端实际项目开发...
    99+
    2023-07-04
  • 如何利用SwiftUI实现可缩放的图片预览器
    目录前言实现过程 程序的初步构想 显示 UIImage 双击缩放 放大手势缩放 预览任意 View 将 UIImage 从 LBJImagePreviewer 剥离 源码总结前言 在...
    99+
    2022-11-12
  • Node如何实现在浏览器预览项目的所有图片详解
    目录背景需求分析实现1 实现可发布npm包2 集成到别的项目3 读取文件效果发布思考总结背景 在前端实际项目开发中,会有这样一种场景。每次引入新的图片,并不知道这个资源是否被引用过,...
    99+
    2023-01-07
    node浏览器预览图片打不开 浏览器在线预览文件 node浏览器预览图片
  • Qt怎么利用ImageWatch实现图片查看功能
    本篇内容介绍了“Qt怎么利用ImageWatch实现图片查看功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是ImageWatchVi...
    99+
    2023-06-30
  • iOS利用余弦函数实现卡片浏览工具
    本文实例为大家分享了iOS利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下 一、实现效果 通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间的变大。效果如下:...
    99+
    2022-05-24
    iOS 卡片浏览
  • Android如何使用腾讯X5浏览器上传图片
    小编给大家分享一下Android如何使用腾讯X5浏览器上传图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这几天在客户端接入一个Web页的客服系统,用来接受用户...
    99+
    2023-06-14
  • html5中canvas移动浏览器上如何实现图片压缩上传
    这篇文章主要介绍html5中canvas移动浏览器上如何实现图片压缩上传,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、<input type="file"...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作