0.学习目标
编写一个QT读取显示图片的工程,并打包成可以运行的exe软件。
1.软件
(1)QT5.14
(2)VS2017
2.建立工程
(1)新建工程
(2)设置kit选择
(3)编辑UI界面
双击mainwindow.ui,计入qtdesinger编辑界面
(4)设置显示窗口和触发按钮
分别从左侧拖拽出label和push button,QLabel,QLineEdit并分设置名称
(5)设置点击槽函数
鼠标右击“点击按钮”,点击“转到槽”,选择“click()”会跳转到槽函数,
3.代码
3.1 mainwindows.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QFileDialog>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void buttonReadImage();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
3.1 mainwindows.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::buttonReadImage(){
QString open_file, open_file_path;
QImage image;
open_file = QFileDialog::getOpenFileName(this,
"please choose an image file",
"",
"Image Files(*.jpg, *.png, *.bmp);;All(*.*)");
if (open_file != ""){
if (image.load(open_file)){
//显示图片,设置合适的尺寸
ui->label->setPixmap(QPixmap::fromImage(image).scaled(ui->label->size()));
}
}
QFileInfo open_file_info;
open_file_info = QFileInfo(open_file);
open_file_path = open_file_info.filePath();
ui->lineEdit->setText(open_file_path);
}
使用 crt+R运行程序,点击按钮,加载图片。
3.软件打包
把qt程序打包成独立运行的软件。
(1)添加图标
在pro文件下添加程序的图标,图标的格式必须为ico格式,在pro文件中添加如下语句。
(2)修改编译模式为release模式
选择release模式后,点击编译,会在工程目录下生成release目录
(3) 利用windeployqt工具打包程序
把生成的.exe文件拷贝出来放在我们自己创建的文件夹下,
然后用qt的对应的cmd窗口执行windeployqt命令打包程序。
执行完后就可以看到test文件夹里面自动复制的插件文件、dll文件、qm文件等,在这里就得到了完全程序发布集合。