【QT】单文档程序
来源:互联网 发布:传奇物品数据库详解 编辑:程序博客网 时间:2024/06/05 07:49
single document 单文档程序,类似于word这类打开一个窗口即为一个文档。区别于类似Notepad++的多文档程序。
- string 和 char[] 、char* 之间的转换
例如:
string str;char * buf;
string–>char* :
buf=str.c_str();
// 这里返回的是字符串首地址 char*
char* –>string :
str=buf;
//char* 、char[] 可直接赋值给string
- 代码
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QString>#include <QFileDialog>#include <QDebug>#include <string>#include <GBK.h>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); connect(ui->action_new,SIGNAL(triggered(bool)),this,SLOT(OnMenuNew())); connect(ui->action_open,SIGNAL(triggered(bool)),this,SLOT(OnMenuOpen())); connect(ui->action_save,SIGNAL(triggered(bool)),this,SLOT(OnMenuSave())); m_label=new QLabel(this); ui->statusBar->addWidget(m_label); m_label->setText(tr("文件名:初始化"));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::OnMenuNew(){ filepath=""; ui->m_plainedit->clear(); m_label->setText(tr("文件名:初始化"));}int MainWindow::OnMenuOpen(){ //选择文件 QString filepath=QFileDialog::getOpenFileName(this,tr("读取文件")); if (filepath.length()==0) return -1; //读取文件内容 string gbk_filepath=GBK::FromUnicode(filepath); FILE* fp=fopen(gbk_filepath.c_str(),"rb"); char buf[512]; //缓存区 大小视文件而定 int n=fread(buf,1,512,fp); //将fp文件内容读入buf缓存区内 buf[n]=0; //将读入的下一个字符用'\0'占位 表示字符串 fclose(fp); //显示到界面 QString text= GBK::ToUnicode(buf); ui->m_plainedit->setPlainText(text); //显示到状态栏 m_label->setText(tr("已经打开")); m_label->setText(filepath); return 0;}int MainWindow::OnMenuSave(){ //选择文件 QString filename=QFileDialog::getSaveFileName(this,tr("保存文件"),tr("untitled.txt")); if(filename.length()==0) return -1; //保存文件 string gbk_filename=GBK::FromUnicode(filename); FILE *fp=fopen(gbk_filename.c_str(),"wb"); string text=GBK::FromUnicode(ui->m_plainedit->toPlainText()); fwrite(text.c_str(),1,text.length(),fp); fclose(fp); m_label->setText(filename); return 0;}
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QLabel>#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: Ui::MainWindow *ui; QString filepath;private slots: void OnMenuNew(); int OnMenuOpen(); int OnMenuSave();public: QLabel *m_label;};#endif // MAINWINDOW_H
图片是ui界面设计
编译环境:QT Creator 5.5.1
阅读全文
0 0
- 【QT】单文档程序
- MFC单文档程序流程
- 单文档程序添加OSG
- The SDI Application单文档程序
- 实现单文档程序中分割窗口
- 单文档程序窗口运行即最大化
- MFC 删除单文档程序的菜单栏
- 去掉VC单文档程序标题
- 修改单文档程序的标题
- 让单文档程序只运行一次
- vc6之单文档程序执行流程
- MFC中 单文档程序 删除工具栏
- VC单文档程序窗口运行最大化
- MFC单文档程序初始化对话框方法
- MFC 单文档程序的运行过程
- MFC中单文档程序框架
- MFC--单文档程序(框架)
- VC++2010 制作单文档托盘程序
- Gson解析出现类似错误,com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_AR
- Shell脚本——提取目录名
- gitignore
- iphone屏幕尺寸总结
- C++综合系列之模拟单链表模版
- 【QT】单文档程序
- 进程与线程
- 堆 续8
- Android蓝牙完全学习手册
- Perl 入门 之 context 上下文
- pandas.DataFrame.append
- 2016-6-6
- mybatis中Oracle数据库如何实现主键自增
- Java找出两个链表的第一个公共节点