###任务:
Qt中按下按钮,弹出文件保存对话框,根据所选的路径保存文件;
###示例:
点击按钮,选择路径并为文件命名,保存文件(以保存图片为例);
###代码及说明:
####1. 头文件
a: 包含所需头文件
include <QWidget> include <QPainter> #include <QBitmap> #include <QFileDialog> #include <QPushButton> #include <QPixmap> #include <QDebug>
b:定义变量;分别为对话框指针、按钮指针、文件路径和图片指针
private:
QFileDialog *_fileDialog;
QPushButton *_save;
QString _filePath;
QPixmap *_pixmap;
####2.源文件(以下代码均在构造函数中)
a: 初始化图片指针(可以自己用画笔画一个Pixmap,也可以用已存在的其他图片)
_pixmap = new QPixmap(100, 100);
QPainter p;
p.begin(_pixmap);
p.setPen(QPen(Qt::red, 2, Qt::SolidLine));
p.drawRect(10, 10, 80, 80);
p.end();
b: 初始化按钮指针,为按钮设置一个位置,当点击按钮时,弹出保存对话框
_save = new QPushButton("Save",this);
_save->move(150,100);
connect(_save, &QPushButton::clicked, [&]()
{
_fileDialog->show();
}
);
c: 初始化对话框指针,完成对话框事件,依据路径和文件名保存图片
_fileDialog = new QFileDialog(this);
_fileDialog->setAcceptMode(QFileDialog::AcceptSave);
connect(_fileDialog, &QFileDialog::accepted, [&]()
{
_filePath = _fileDialog->selectedFiles()[0];
_pixmap->save(_filePath);
}
);