QT笔记(6)——Qt打开文件与保存文件
来源:互联网 发布:淘宝找苹果手机可信吗 编辑:程序博客网 时间:2024/06/08 03:29
Qt打开文件与保存文件,首先打开文件,qt给了一个方法直接调用就好,如下:
static QString getOpenFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options());通用解释如下:
第一个参数parent,用于指定父组件。注意,很多Qt组件的构造函数都会有这么一个parent参数,并提供一个默认值0;
第二个参数caption,是对话框的标题;
第三个参数dir,是对话框显示时默认打开的目录,"." 代表程序运行目录,"/" 代表当前盘符的根目录(Windows,Linux下/就是根目录了),也可以是平台相关的,比如"C:\\"等;
第四个参数filter,是对话框的后缀名过滤器,比如我们使用"Image Files(*.jpg *.png)"就让它只能显示后缀名是jpg或者png的文件。如果需要使用多个过滤器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)";
第五个参数selectedFilter,是默认选择的过滤器;
第六个参数options,是对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来。
下面以工程实例具体说打开文件和保存文件具体操作,工程是加载一个图片到label中,在将图片改名保存到指定文件夹中,具体操作如下:
1.新建一个mainwindow工程,在ui里添加一个label,格栅布局;
2.在菜单栏中添加文件》打开,保存,如下:
3.编辑动作,添加槽,如下:
4.转到槽进行编辑,如下:
5.转到槽,选择信号类型:
6.代码如下,mainwindow.h:
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QImage>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); int globalMark;//保存标记用 QImage globalImg;//存储图片用private slots: void on_ac_openfile_triggered(); void on_ac_save_triggered();private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
mainwindow.cpp如下:
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMessageBox>#include <QFileDialog>#include <QDebug>#include <QTime>#include <QDir>#include <QFile>#pragma execution_character_set("utf-8")MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); globalMark=0;}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_ac_openfile_triggered(){ ui->label->clear();//先清除label内容 //打开图片操作 QString fileName = QFileDialog::getOpenFileName( this, tr("open image file"), "./", tr("Image files(*.bmp *.jpg *.pbm *.pgm *.png *.ppm *.xbm *.xpm);;All files (*.*)")); if(fileName.isEmpty()) { QMessageBox mesg; mesg.warning(this,"警告","打开图片失败!"); return; } else { QImage img(fileName); img=img.scaled(ui->label->width(),ui->label->height(),Qt::KeepAspectRatio);//Qt::KeepAspectRatio自适应大小,不变形 ui->label->setPixmap(QPixmap::fromImage(img)); if(img.isNull()) { QMessageBox::information(this,"信息","打开文件失败"); } else { globalMark=1;//存储标记,用于判断是否有文件 globalImg=img; } }}void MainWindow::on_ac_save_triggered(){ if( globalMark==1)//r如果标记为1,证明有文件加载,不然没有不需要保存 { QString dirPath;//创建文件夹路径 QString filePath;//存储保存路径 QString saveName="保存实验图";//保存图片名字 QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间 QString str = time.toString("yyyyMMdd_hhmmss"); //设置显示格式 filePath = QFileDialog::getExistingDirectory(this,"");//获取文件夹路径 if(filePath.isEmpty()) { QMessageBox::information(this,"信息","保存失败"); } else { dirPath=QString("%1/保存实验%2").arg(filePath).arg(str); QDir *temp = new QDir;//声明文件对象 temp->mkdir(dirPath);//创建文件夹 QImage images; images=globalImg;//获取加载图片 //将图片重新命名并保存至刚刚创建的文件夹里 QString savePath=QString("%1//%2.jpg").arg(dirPath).arg(saveName); images.save(savePath);//QImage保存方法 QMessageBox::information(this,"信息","保存成功"); } } else { QMessageBox::information(this,"信息","保存失败"); }}
效果如下:
阅读全文
0 0
- QT笔记(6)——Qt打开文件与保存文件
- Qt打开文件保存文件
- Qt txt文件打开保存
- Qt 打开保存文件对话框
- QT 打开 保存 文件对话框
- QT-notepad 打开/保存文件
- Qt文件的打开和保存
- Qt打开读取和保存写入文件
- Qt获取打开,保存文件路径
- QT打开和保存文件对话框
- QT打开和保存文件对话框
- Qt中打开文件对话框和保存文件对话框
- Qt 打开文件对话框
- QT打开文件对话框
- Qt-打开文件
- Qt打开文件对话框
- QT 打开文件对话框
- Qt文件操作之——QFileDialog保存文件
- Mark 概率图模型PGM和马尔科夫随机场MRF
- ElasticSearch入门 第一篇:Windows下安装ElasticSearch
- Android开发集成第三方支付
- 存储过程的简单介绍
- 修改node.js默认的npm安装目录
- QT笔记(6)——Qt打开文件与保存文件
- JavaScript的原型对象,以及它的构造函数
- http header详解
- 用TEXT函数解决日期用&连接字符日期变成数字格式的问题
- typescript环境配置
- Vue日常开发使用整理
- JavaScript Standard Style(JavaScript标准编码风格)(一)
- 记住密码,自动登录
- 程序30