1.  ChildFile.h

#ifndef CHILDFILE_H
#define CHILDFILE_H#include <QWidget>
//#include <QtCore/QStringList>/*文件打开,另存,读取
*/
class ChildFile
{
public:ChildFile(QWidget *parent);~ChildFile();QString FileSelect();QString FileSaveAs(QStringList content);
private:QWidget *window= nullptr;//父窗口  上下文};#endif // CHILDFILE_H
2.ChildFile.cpp
#include "childfile.h"
#include <QWidget>#include <QFile>
#include <QDesktopServices>
#include <QUrl>
#include <QDebug>
#include <QFileDialog>
#include <QApplication>
#include <QMainWindow>
#include "QtWidgets"ChildFile::ChildFile(QWidget *parent)
{this->window=parent;
}/*文件 选择+读取,返回字符串*/
QString ChildFile::FileSelect()
{QString reStr="";QString fileName = QFileDialog ::getOpenFileName(this->window,this->window->tr("选择文件"),"./",this->window->tr("json files(*.json *.txt,*.md);;All files (*.*)"));if(fileName.isEmpty()){QMessageBox mesg;mesg.warning(this->window,"警告","打开文件失败");return "";}else{QString line;QTextCodec * code =QTextCodec::codecForLocale();QFile file(fileName);file.open(QIODevice::ReadOnly);//IO_ReadOnlyQTextStream stream(&file);stream.setCodec(code);while (stream.atEnd()==0){line=stream.readAll();}QMessageBox alert;alert.warning(this->window,"提示","读取完成");reStr=line;return  reStr;}
}
/*
文件另存为
*/
QString ChildFile::FileSaveAs(QStringList content)
{QString reStr="";QStringList destinContent;destinContent=content;QString filePath;QDateTime time=QDateTime::currentDateTime();QString timeHead=time.toString("yyyyMMddHHmmss");int randNumber= rand()*100;QString destinFileName;destinFileName=timeHead+"_"+QString::number(randNumber)+"_"+"dltc.json";filePath=QFileDialog::getSaveFileName(this->window,this->window->tr("另存为"),destinFileName,this->window->tr("dltc(*.json)"));// reStr=destinFileName+".json";//返回文件全路径+文件名reStr=destinFileName;//返回文件全路径+文件名if(!filePath.isNull()){QFile file(filePath);if(file.open(QIODevice::WriteOnly)){QTextStream stream(&file);for(QStringList::Iterator it = destinContent.begin();it !=destinContent.end();++it)stream <<*it <<"\n";file.close();}QMessageBox::information(this->window,"信息","保存成功");}else{QMessageBox::information(this->window,"信息","保存失败,您取消了保存");}return  reStr;
}

3.mainwindow 中调用

3.1 头部引用

#include "childtarget.h"

3.2 调用代码

a.选择文件

 ChildFile * childfile =new ChildFile(this->window); //重点说明 此处 如果是在mainwindow 中直接定this,重点是要将文件弹出窗口父窗口的指针传入QString content= childfile->FileSelect();// childfile->~ChildFile();//ui->textBrowsercontent->setText(content);// QMessageBox::information(this,"单独插件-文件选取","文件选择结束");return  content;

b.另存为

QStringList destinContent;destinContent.append(content);// destinContent<<ui->textBrowsercontent->toPlainText();ChildFile *childfile =new ChildFile(this->window);//重点说明,此处如果是Mainwidnow 应当是this,总之要将另存为父窗体的指针传入QString reStr= childfile->FileSaveAs(destinContent);// QMessageBox::information(this,"单独插件-文件另存为","创建成功,文件名:"+reStr);return  reStr;

如果实在是太懒可以下载源码Demo:

QT文件选择,文件另存为,打开文件夹调试可用的demo包括单独模块类-C++文档类资源-CSDN下载

QT 选择文件,另存为文件组件相关推荐

  1. 文本编辑器实现打开文件、保存文件、文件另存为、新建文件、软件关闭的功能

    文章目录 1 文本编辑器实现打开文件.保存文件.文件另存为.新建文件.软件关闭的功能 1.1 打开文件 1.2 保存文件 1.3 文件另存为 1.4 新建文件 1.5 软件关闭 1 文本编辑器实现打开 ...

  2. Qt文件选择复制另存为

    自己开发了一个股票软件,功能很强大,需要的点击下面的链接获取: 自研股票智能分析报警软件更新链接 - 一字千金 - 博客园 QT文件选择复制和另存为 目录 1       选择文件... 1 2    ...

  3. C#文件选择和另存为

    文件选择: var openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Txt Files (.txt)|.txt ...

  4. QT选择目录等常用文件/文件夹操作

    QT 创建文件夹 bool QDir::mkdir ( const QString & dirName ) const 创建一个子目录名为目录名.[喝小酒的网摘]http://blog.heh ...

  5. IE浏览器弹出另存为文件(可以自主选择存储路径)对话框

    1.网上找的这段代码: try {                 var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939";    ...

  6. Qt选择文件后获取路径并打开

    qt菜鸟记录贴 包含头文件: #include <QFile> #include <QFileDialog> 代码: //点击按钮后打开文件选择 void MainWindow ...

  7. QT文件日志系统(可选择出到文件,数据库,或者网络传输)

    文章目录 前言 一.源码如下 二.使用步骤 1.导入文件 2.其中有三种模型 总结 参考 前言 在软件打包好运行时候,如果遇到系统问题,如果没有日志系统很难很快的定位到问题的位置.这个时候就需要日志系 ...

  8. QT打开和保存文件对话框

    使用QFileDialog可以调用当前系统的文件对话框 包含头文件: #include <QFileDialog> (1)文件打开对话框 QString getOpenFileName ( ...

  9. Winform中使用NPOI实现导出Excel并文件另存为

    场景 POI是一套用Java写成的Excel导入导出的库. NPOI就是POI的.NET版本. NPOI官网 https://archive.codeplex.com/?p=npoi NPOI教程 h ...

最新文章

  1. 解决java前后端分离端口跨域问题
  2. Spring Cloud自定义Hystrix请求命令
  3. 循环队列基本操作(解决队列假溢出)
  4. ASP.NET MVC 学习之路-5
  5. 在Python中使用MongoDB
  6. 基于php程序系统设计,PHP程序静态分析系统的设计与实现
  7. 差分进化算法python_差分进化算法DE-python实现
  8. Kaldi AMI数据集脚本学习4---train_mono.sh
  9. 学生管理数据库,及相关查询
  10. 当Linux配置zh_CN.UTF-8 ,中文还是显示乱码解决办法
  11. 互联网晚报 | 1月4日 星期二 | 中国移动1月5日在上交所上市;元旦档总票房破10亿;特斯拉连续6个季度交付量创纪录...
  12. MySQL主从- slave跳过错误
  13. Android Studio 之 实现app打开界面透明化效果
  14. python从后面删除重复项_如何从Python列表中删除重复项
  15. solidworks宏的录制与运行——自动生成零件与保存
  16. c语言 vc++6.0 插入图片,C语言VC++6.0环境中如何插入图片
  17. LIGO引力波探测原理
  18. str.charAt(0);
  19. c语言单字符输入和输出函数分别为,c语言第六章字符数据
  20. Laravel 的 Auth::attempt () 初探及修改 bcrypt 验证为 MD5

热门文章

  1. 白话CMPP、SGIP
  2. linux 符号所在库,linux - 未定义的符号引用,即使nm表示此符号存在于共享库中 - 堆栈内存溢出...
  3. nhibernate mysql配置_(转)NHibernate各种数据库配置写法
  4. 电脑之间利用串口传文件
  5. vue中使用canvas手写输入识别中文
  6. mobi怎么在iphone上打开?
  7. 8086汇编(10、int9键盘中断)
  8. wps将批量数字转换成条形码_excel表格怎么把数据转换条形码-WPS表格中怎么把数字还原成条形码,本来是条形码的。...
  9. TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法
  10. 2018年第九届蓝桥杯A组省赛