使用控件QLabel

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QFileDialog>
#include <QImage>
#include <QLabel>
#include <QTextCodec>
#include <QMessageBox>
#include <opencv2/opencv.hpp>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;cv::Mat image;private slots:void DisplayMat(cv::Mat image);void on_pushButton_clicked();
};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::DisplayMat(cv::Mat image)
{cv::Mat rgb;QImage img;if(image.channels() == 3){cvtColor(image,rgb,CV_BGR2RGB);img = QImage((const unsigned char*)(rgb.data),rgb.cols,rgb.rows,rgb.cols*rgb.channels(),//rgb.cols*rgb.channels()可以替换为image.stepQImage::Format_RGB888);}else{img = QImage((const unsigned char*)(image.data),image.cols,image.rows,rgb.cols*image.channels(),QImage::Format_RGB888);}ui->labelimage->setPixmap(QPixmap::fromImage(img).scaled(ui->labelimage->size()));//setPixelmap(QPixmap::fromImage(img));ui->labelimage->resize(ui->labelimage->pixmap()->size());//resize(ui->label->pixmap()->size());
}void MainWindow::on_pushButton_clicked()
{QString filename = QFileDialog::getOpenFileName(this,tr("Open Image"),".",tr("Image File (*.jpg *.png *.bmp)"));QTextCodec *code = QTextCodec::codecForName("gb18030");std::string name = code->fromUnicode(filename).data();//filename.toAscii().data()image = cv::imread(name);if(!image.data){QMessageBox msgBox;msgBox.setText(tr("Image Data Is Null"));msgBox.exec();}else {DisplayMat(image);}
}

main.cpp

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

显示结果如下:

注意事项:

这个过程中要注意几点:

第一:建立Qt QWidgets Application工程

第二:在ui界面上添加一个QLabel控件,并改名字为labelimage

在ui界面上添加一个Button按钮,点击右键,转到槽,选择第一个 clicked(),确定,就会生成一个按钮的响应函数即:

   on_pushButton_clicked()

第三:配置工程遇到的相关问题,比如, QT  += core gui widgets

添加LIBS

添加INCLUDEPATH

等等

————————————————————————————————————————————————————————————————————————

当然,不用OpenCV更方便可以显示出来

如下

在mainwindow.cpp中

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);QImage myImage;myImage.load("lena.jpg");ui->labelimage->setPixmap(QPixmap::fromImage(myImage).scaled(ui->labelimage->size()));
}MainWindow::~MainWindow()
{delete ui;
}

且在ui界面中添加QLabel控件,并拖动设置其大小即可,mainwindow.h中添加#include<QImage>。其他不要变化!

显示结果如下。

Qt学习笔记——打开并显示图片相关推荐

  1. 利用opencv+QT打开并显示图片

    ``` // 利用opencv+QT打开并显示图片// 头文件在添加 #include "qlabel.h" // opencv #include <opencv2\core ...

  2. QT学习笔记(五):Qt5的8种标准对话框示例

    QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...

  3. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  4. 【QT学习笔记】基于QT的天气预报

    [QT学习笔记]基于QT的天气预报 前言 那就开始吧! 先看一下效果 颜面最重要,画个UI 构造实现 怎么开始? 开始解析数据 关于城市切换 ok 最后源码献上 感谢 前言 学习qt已经有一段时间了, ...

  5. QT 学习笔记(六)

    文章目录 一.设计器的使用 二.常用控件 1. Containers 容器类 2. Input Widgets 输出控件 3. Display Widgets 显示类控件 三.代码和运行结果 1. 主 ...

  6. QT学习笔记(十三):绘制图像

    QT学习笔记(十三):绘制图像 paintEvent() 事件源码添加: #include <QPainter> #include <QImage> #include < ...

  7. QT学习笔记(六):Qt5主窗口框架示例

    QT学习笔记(五):Qt5主窗口框架代码示例 一.添加编辑菜单:并在下拉菜单和工具栏中添加"打开文件"动作菜单 #include <QToolButton> #incl ...

  8. Qt学习笔记之MySQL数据库

    一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

  9. Qt学习笔记之数据库

    一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...

最新文章

  1. AI就是“大数据+机器学习”?答案是否定的
  2. linux 格式化 dvd,linux 服务器分区格式化相关知识 -mount
  3. 微软2011 Build大会:Windows 8盛大出场(转)
  4. vb6中word编程总结
  5. java多线程编程--基础篇
  6. 提交git push 的时候报错,Please make sure you have the correct access rights
  7. JavaScript结合Bootstrap仿微信后台多图文界面管理
  8. maven中的groupId和artifactId到底指的是什么?
  9. 参考TinyOS官方网站实现BlinkToRadio
  10. Delphi应用程序的调试(三)监视变量
  11. CCF201809-4 再卖菜(100分)【DFS】
  12. c语言分号应用,问什么C程序里总是提示缺少分号;,而明明有分号?
  13. Image Pyramids
  14. java导出出行客人到Excel
  15. 数字图像处理Python语言实现-图像增强-导向滤波(Guided Filter)
  16. 【转】常用邮箱的 IMAP/POP3/SMTP 设置
  17. Excel 序号自动增长,变更
  18. 【MODIS数据处理#13】使用Arcpy一键加工长时间序列MODIS数据
  19. [buuctf]ciscn_2019_ne_5
  20. java调用百度内容审核接口检查文本

热门文章

  1. 问答项目---登陆验证码点击切换及异步验证验证码
  2. DB2 V10.5 PureScale支持HADR
  3. Access数据库基于时间盲注的实现[www.freebuf.com]
  4. FTP+SSL(加密的ftp)
  5. 中位数(Median)
  6. 【EOS】2.3 深入理解ABI文件
  7. 由通项为In(1+1\n)的级数引申...
  8. vscode + SFTP 传输文件到服务器,从服务器下载文件
  9. 一款网盘软件应该具备哪些功能?
  10. loj10135. 「一本通 4.4 练习 2」祖孙询问