Vc - Qt - 实现加载图片并显示到窗口中
一、我是如何分析的,并如何做的呢?
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 - 实现加载图片并显示到窗口中相关推荐
- C# PictureBox加载图片并显示进度条
以前用winform的PictureBox时没有试过加载网络的图片,刚刚看到一段代码才了解到原来还有LoadAsync这个方法,可以异步加载图片,再加上LoadProgressChanged事件也可以 ...
- Windows编程 内存中加载图片并显示 Direct离屏表面的实现
版本:VS2015 语言:C++ 前段时间去白空轨了,感觉快燃尽了.没有看Windows的书,所以博客也没更,不过请组织放心,从现在开始,即使是节假日,我也会仔细钻研DirectX的. 今天是第七章的 ...
- qt快速加载图片_Qt实用技巧:使用Qt加载超大图片的耗时测试
需求 某机器人项目中,需要加载构建的地图,此处仅测试直接加载图片的时间. 相关博客 测试代码 QString path; path = "./map/1.png"; QFileIn ...
- VC++几种加载图片方法的讨论(附源码)
目录 1.图片加载的相关说明 2.使用LoadBitmap来加载位图图片 3.使用CImage加载图片
- Linux下Qt的QPixmap加载图片无法显示的问题
在当前路径下加载个图片,有错吗??? 如题,这个问题搞了半天,弄到怀疑自己的能力.直到使用QDir::currentPath(); 获取了程序的路径后我才明白,原来是系统的问题. 因为系统当前路径没 ...
- uniapp实现加载图片失败显示占位图
平常在项目中,我们会经常需要有加载网络图片的功能,但是存在图片地址问题.网络问题等导致图片加载失败,需要展示一个占位图,所以我这里总结了三种办法,仅供大家参考,写的不好大家见谅. 一.导入第三方插件, ...
- Java中加载图片并显示
目录 一.首先获得图片 二.将图片显示在界面中 三.完整代码展示 一.首先获得图片 关于图片的加载方式有很多种,这里我只介绍一种,毕竟太多记不住. URL url1=deskball.class.ge ...
- uniapp页面显示服务器图片,uniapp实现加载图片失败显示占位图
平常在项目中,我们会经常需要有加载网络图片的功能,但是存在图片地址问题.网络问题等导致图片加载失败,需要展示一个占位图,所以我这里总结了三种办法,仅供大家参考,写的不好大家见谅. 一.导入第三方插件, ...
- android webview 加载图片一直显示正在加载中
今天无意间发现自己的项目WebView加载时,没有调用到onPageFinished,部分图片一直显示加载中,找了老久不知道出现什么问题~~~ 无奈之下拿出老版本测试,发现加载很正常,只好把代码拿出来 ...
最新文章
- mysql服务怎么改名字_MySQL数据库改名字
- Linux配置基础命令
- 安装搜狗输入法之后 Linux Mint 19.1 字体发虚解决方案
- OpenGL indirect material间接材料的实例
- winfrom 图片互传
- mysql增加布尔字段_JDBC对MySQL数据库布尔字段的操作方法
- 云服务器cvm系统,云服务器 cvm 自带系统
- 收藏 | 使用 YOLO及OpenCV 实现目标检测
- python hash表
- 计算机单词大全及缩写,计算机英文单词和缩写
- spring session spring:session:sessions:expires 源码跟踪
- Atlas Control Toolkit更新发布V1.0.60914.0
- 分布式存储系统学习笔记(二)—分布式文件系统(2)—淘宝文件系统(TFS)
- Vue-购物车简单案例
- 【Large Scale Adversarial Representation Learning 大规模对抗学习(BigGAN) 】学习笔记
- 解决Fedora14使用root权限登录问题
- 海思AI芯片3559A方案学习(二)NFS搭建及ping测试
- 在线JSON格式化美化
- FusionAccess桌面云模板制作
- 程序包清单签名验证失败
热门文章
- c语言iconv转码错误,iconv编码转换的问题
- h5居中loading_HUI - loading 动画
- sleep()和wait()
- Inf2vec: Latent Representation Model for Social Influence Embedding
- 原码一位乘(C语言实现)
- 体素神器MagicaVoxel-3小时学会制作3d游戏模型
- 利用predis操作redis方法大全(方便自己使用)
- linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)
- Web负载均衡解决方案 HAproxy
- 什么是Smoke test