文件对话框
来源:互联网 发布:手机qq2010 java版 编辑:程序博客网 时间:2024/05/20 11:32
打开和保存文件时调用的对话框,主要利用QFileDialog类下的静态成员getOpenFileName()和getSaveFileName()。
// 做一个简单的文本编辑器 使其具有打开文件和保存的功能// 打开:读取文件并显示 保存:输入一个新文件并保存#include "Qt7_2A.h"#include<QFileDialog>#include<QDebug>#include"GBK.h"Qt7_2A::Qt7_2A(QWidget *parent) : QMainWindow(parent){ ui.setupUi(this); //建立两个按钮的信号与槽的连接 connect(ui.btnOpen,SIGNAL(clicked()),this,SLOT(OnbtnOpen())); connect(ui.btnSave, SIGNAL(clicked()), this, SLOT(OnbtnSave()));}int Qt7_2A::OnbtnOpen() // “打开”按钮的处理函数{ // 当用户选择打开按钮后,通过QFileDialog类下的静态成员getOpenFileName()函数进行文件选择 // getOpenFileName()两个参数,一个表示父类 一个表示标题 QString filepath = QFileDialog::getOpenFileName(this, GBK::ToUnicode("选择文件")); // if (filepath.length() > 0) { qDebug() << filepath; // 显示文件路径 string gbk_name = GBK::FromUnicode(filepath); // 打开文件,读取内容 FILE* fp = fopen(gbk_name.c_str(),"rb"); // 获得文件大小 fseek(fp, 0, SEEK_END); int filesize = ftell(fp); // 读取内容 fseek(fp,0,SEEK_SET); char* buf = new char[filesize + 1]; int n = fread(buf,1,filesize,fp); if (n > 0) { buf[n] = 0; //显示到界面文本框中 ui.plainTextEdit->setPlainText(GBK::ToUnicode(buf)); } delete[] buf; // 释放内存 fclose(fp); } return 0;}int Qt7_2A::OnbtnSave()//“保存”按钮的处理函数{ // 保存一个文本文件 和打开类似 QString filepath = QFileDialog::getSaveFileName(this, GBK::ToUnicode("保存文件")); // if (filepath.length() > 0) { // 首先获得文本框内的文本信息 QString text = ui.plainTextEdit->toPlainText(); string gbk_text = GBK::FromUnicode(text);// 转换成GBK string gbk_filename = GBK::FromUnicode(filepath); // 打开文件 FILE* fp = fopen(gbk_filename.c_str(), "wb"); fwrite(gbk_text.c_str(),1,gbk_text.length(),fp); fclose(fp);//关闭文件 } return 0;}
阅读全文
0 0
- 常用对话框:文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框
- 文件对话框,消息对话框,确认对话框
- 目录对话框与文件对话框
- 对话框(3)-文件对话框
- Qt基本对话框之文件对话框,颜色对话框,字体对话框
- MFC->消息对话框、文件对话框、字体对话框、颜色对话框
- 打开文件对话框和保存文件对话框
- 选择文件对话框、保存文件对话框和选择目录对话框
- Vector和List的使用
- 【C51】单片机独立按键与矩阵按键
- Java垃圾回收
- SpringBoot+Maven项目实战(1):新建Maven项目
- ICPC北京网络赛-Minimum
- 文件对话框
- shell 快捷键 超提高命令行,输入效率
- Java Queue 和 Deque队列
- 双二极管钳位电路的原理
- 684. Redundant Connection
- Node.js读写中文内容文件操作
- 2017年全国大学生电子设计竞赛K题报告
- 683. K Empty Slots
- 【Java】:浮点型