首先要感谢“笔尖bj” 提供的代码分享:https://blog.csdn.net/u013165921/article/details/79380097
在他的前文中已经讲解了菜单栏、工具栏、任务栏的实现方法。我直接用他的代码发现他用的信号和槽的编程方法还是Qt4版的编程方法,我更新为Qt5中常用的编程方式。
除了信号和槽以外,我对另存方法做了一点优化,另外在每个调用函数中添加了测试语句来监测函数调用,然后在这里和大家做一下分享。
先说一下我的编程环境,我直接用的Qt5.12.3。没有通过VS来编程。
如有侵权,请联系删除。
软件运行结果如下:
(第二张图源自笔尖bj)
代码
//头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#pragma once
#include <QtWidgets/QMainWindow>
#include <QtGui>
#include <QtWidgets>
#include <QMainWindow>
#include "ui_mainWindow.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
QDockWidget *dock_Image; // 图像窗口
QString currentPath; // 当前图像的路径
QLabel *imgLabel; // 图像显示框
void InitImage(); // 初始化图像
void Menu_File(); // 文件菜单
void File_new(); // 新建
void File_open(); // 打开
void File_save(); // 保存
void File_saveas(); // 另存为
// 关闭不需要,直接使用close()
};
#endif // MAINWINDOW_H
//CPP
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMainWindow>
#include <QAction>
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
Menu_File(); // 文件菜单
InitImage(); // 初始化图像QLabel
setWindowTitle("xxx的图像处理软件"); // 标题名称
setWindowIcon(QIcon(":/image.png")); // 软件图标(图标来源于网络)
resize(QApplication::desktop()->width()*0.5, QApplication::desktop()->height()*0.8); // 界面大小
move(QApplication