一、我是如何分析的,并如何做的呢?

1、最终效果展示

2、如何分析,如何做的呢?

当点击uploadBtn按钮时候,会调用打开文件对话框窗口,对话框限制了图片的后缀,只能打开*.png或者*.jpg的图片,此处做的事情就是加载图片,缩放图片,并将图片显示到QLabel控件上:

void PictureToolWnd::slot_uploadBtnClicked()
{QString filepath = QFileDialog::getOpenFileName(nullptr, QStringLiteral("选择图片"), ".", "*.png;*.jpg");if (filepath.trimmed().isEmpty() == false){QPixmap picture;picture.load(filepath);picture = picture.scaled(m_picLable->width(), m_picLable->height());m_picLable->setPixmap(picture);}
}

二、更为具体的一些描述

关于布局:

布局主要采用垂直布局和水平布局相互结合方式,窗体总体布局为垂直布局,垂直布局中添加了一个标签(QLabel)和一个水平布局(里边包含3个按钮)

.

关于打开文件:

采用QFileDialog函数进行打开文件,需要注意的是关于后面设置选择器的时候,即是 "*.png;*.jpg"这部分的时候,一定要用分号分割,千万不能用逗号分割

 QString filepath = QFileDialog::getOpenFileName(nullptr, QStringLiteral("选择图片"), ".", "*.png;*.jpg");

关于图片缩放:

调用QPixmap的scaled就可以完成缩放功能

​picture = picture.scaled(m_picLable->width(), m_picLable->height());

三、如何获取代码

1、通过csdn下载

QtPictureTool.rar-C++文档类资源-CSDN文库https://download.csdn.net/download/wjl18270365476/50348646

2、参考如下文件目录及详细代码,组织结构

1)代码结构

2)代码详情

PictureToolWnd类代码

头文件:

#pragma once#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>class PictureToolWnd : public QWidget
{Q_OBJECT
public:PictureToolWnd(QWidget* p = nullptr);
public slots:void slot_uploadBtnClicked();
public:QLabel* m_picLable;QVBoxLayout* m_vLayout;QHBoxLayout* m_hLayout;QPushButton* m_determineBtn;QPushButton* m_cancelBtn;QPushButton* m_uploadBtn;
};

源文件:

#include "PictureToolWnd.h"
#include <QFileDialog>PictureToolWnd::PictureToolWnd(QWidget* p /*= nullptr*/) : QWidget(p)
{m_vLayout = new QVBoxLayout();setLayout(m_vLayout);m_picLable = new QLabel();m_picLable->setFixedSize(350, 350);m_determineBtn = new QPushButton();m_cancelBtn = new QPushButton();m_uploadBtn = new QPushButton();m_determineBtn->setText("determine");m_cancelBtn->setText("cancel");m_uploadBtn->setText("uploadBtn");m_hLayout = new QHBoxLayout();m_hLayout->addWidget(m_uploadBtn);m_hLayout->addWidget(m_determineBtn);m_hLayout->addWidget(m_cancelBtn);m_vLayout->addWidget(m_picLable);m_vLayout->addLayout(m_hLayout);connect(m_uploadBtn, SIGNAL(clicked()), this, SLOT(slot_uploadBtnClicked()));
}void PictureToolWnd::slot_uploadBtnClicked()
{QString filepath = QFileDialog::getOpenFileName(nullptr, QStringLiteral("选择图片"), ".", "*.png;*.jpg");if (filepath.trimmed().isEmpty() == false){QPixmap picture;picture.load(filepath);picture = picture.scaled(m_picLable->width(), m_picLable->height());m_picLable->setPixmap(picture);}
}

3)main文件,主函数文件

#include <QApplication>#include "PictureToolWnd.h"int main(int argc, char** argv)
{//QApplication app(argc, argv);PictureToolWnd w;w.show();return app.exec();
}

四、帮助

如何疑问可留言或者私信我

Vc - Qt - 实现加载图片并显示到窗口中相关推荐

  1. C# PictureBox加载图片并显示进度条

    以前用winform的PictureBox时没有试过加载网络的图片,刚刚看到一段代码才了解到原来还有LoadAsync这个方法,可以异步加载图片,再加上LoadProgressChanged事件也可以 ...

  2. Windows编程 内存中加载图片并显示 Direct离屏表面的实现

    版本:VS2015 语言:C++ 前段时间去白空轨了,感觉快燃尽了.没有看Windows的书,所以博客也没更,不过请组织放心,从现在开始,即使是节假日,我也会仔细钻研DirectX的. 今天是第七章的 ...

  3. qt快速加载图片_Qt实用技巧:使用Qt加载超大图片的耗时测试

    需求 某机器人项目中,需要加载构建的地图,此处仅测试直接加载图片的时间. 相关博客 测试代码 QString path; path = "./map/1.png"; QFileIn ...

  4. VC++几种加载图片方法的讨论(附源码)

    目录 1.图片加载的相关说明 2.使用LoadBitmap来加载位图图片 3.使用CImage加载图片

  5. Linux下Qt的QPixmap加载图片无法显示的问题

    在当前路径下加载个图片,有错吗??? 如题,这个问题搞了半天,弄到怀疑自己的能力.直到使用QDir::currentPath();  获取了程序的路径后我才明白,原来是系统的问题. 因为系统当前路径没 ...

  6. uniapp实现加载图片失败显示占位图

    平常在项目中,我们会经常需要有加载网络图片的功能,但是存在图片地址问题.网络问题等导致图片加载失败,需要展示一个占位图,所以我这里总结了三种办法,仅供大家参考,写的不好大家见谅. 一.导入第三方插件, ...

  7. Java中加载图片并显示

    目录 一.首先获得图片 二.将图片显示在界面中 三.完整代码展示 一.首先获得图片 关于图片的加载方式有很多种,这里我只介绍一种,毕竟太多记不住. URL url1=deskball.class.ge ...

  8. uniapp页面显示服务器图片,uniapp实现加载图片失败显示占位图

    平常在项目中,我们会经常需要有加载网络图片的功能,但是存在图片地址问题.网络问题等导致图片加载失败,需要展示一个占位图,所以我这里总结了三种办法,仅供大家参考,写的不好大家见谅. 一.导入第三方插件, ...

  9. android webview 加载图片一直显示正在加载中

    今天无意间发现自己的项目WebView加载时,没有调用到onPageFinished,部分图片一直显示加载中,找了老久不知道出现什么问题~~~ 无奈之下拿出老版本测试,发现加载很正常,只好把代码拿出来 ...

最新文章

  1. mysql服务怎么改名字_MySQL数据库改名字
  2. Linux配置基础命令
  3. 安装搜狗输入法之后 Linux Mint 19.1 字体发虚解决方案
  4. OpenGL indirect material间接材料的实例
  5. winfrom 图片互传
  6. mysql增加布尔字段_JDBC对MySQL数据库布尔字段的操作方法
  7. 云服务器cvm系统,云服务器 cvm 自带系统
  8. 收藏 | 使用 YOLO及OpenCV 实现目标检测
  9. python hash表
  10. 计算机单词大全及缩写,计算机英文单词和缩写
  11. spring session spring:session:sessions:expires 源码跟踪
  12. Atlas Control Toolkit更新发布V1.0.60914.0
  13. 分布式存储系统学习笔记(二)—分布式文件系统(2)—淘宝文件系统(TFS)
  14. Vue-购物车简单案例
  15. 【Large Scale Adversarial Representation Learning 大规模对抗学习(BigGAN) 】学习笔记
  16. 解决Fedora14使用root权限登录问题
  17. 海思AI芯片3559A方案学习(二)NFS搭建及ping测试
  18. 在线JSON格式化美化
  19. FusionAccess桌面云模板制作
  20. 程序包清单签名验证失败

热门文章

  1. c语言iconv转码错误,iconv编码转换的问题
  2. h5居中loading_HUI - loading 动画
  3. sleep()和wait()
  4. Inf2vec: Latent Representation Model for Social Influence Embedding
  5. 原码一位乘(C语言实现)
  6. 体素神器MagicaVoxel-3小时学会制作3d游戏模型
  7. 利用predis操作redis方法大全(方便自己使用)
  8. linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)
  9. Web负载均衡解决方案 HAproxy
  10. 什么是Smoke test