Qt5 text_Editor(一)
来源:互联网 发布:seo和网络推广的区别 编辑:程序博客网 时间:2024/05/16 07:34
本来想用C++ 写个UI的东西,想写个记事本,但是开始感觉有点无聊,不过开始了就把他做完吧
初始功能 新建NewFile 保存Save 另存为SaveAs
NewFile就是 新建一个Untitle无标题文件
Save分为两种 1是Save Untitle无标题文件等同于另存为
2是普通的已经存在于外存的文件,只作为修改内容desave
因此需要一个简单bool 标志是否Untitle变量 ,UI就是拖拽
主要函数在下边
不怎么熟练,有些错误提示还没有写好。
void MainWindow::NewFile(){ if(NeedSave()) //如果我们要新建文档,就要提醒是否保存当前文档,取消返回F { CurFile=tr("未命名.txt"); IsUnTitle=true; setWindowTitle(CurFile); ui->textEdit->clear(); ui->textEdit->setVisible(true); }}bool MainWindow::OpenFile(const QString &fname){ if(NeedSave()) { QFile file(fname); file.open(QFile::ReadOnly|QFile::Text); QTextStream in(&file); ui->textEdit->setPlainText(in.readAll()); CurFile = QFileInfo(fname).canonicalFilePath(); IsUnTitle=false; setWindowTitle(CurFile); return true; }}bool MainWindow::Save(){ if(IsUnTitle) //如果是需要被创建新文件 { if(SaveAs()) //如果我们另存为,且存取成功,那么这就是一个相当于open的文件 return IsUnTitle=false; } else { return SaveFile(CurFile);}/ve保存修改 }bool MainWindow::SaveAs(){ QString fileName = QFileDialog::getSaveFileName(this, tr("另存为"),CurFile); //获取需要保存的文件路径 if (fileName.isEmpty()) return false; return SaveFile(fileName);}bool MainWindow::SaveFile(const QString &fname){ QFile file(fname); file.open(QFile::WriteOnly | QFile::Text); //打开文件 QTextStream out(&file); out << ui->textEdit->toPlainText(); //写入文件 CurFile = QFileInfo(fname).canonicalFilePath(); //获得文件路径 setWindowTitle(CurFile); //重置标题 file.close(); return true;}bool MainWindow::NeedSave() //保存提示{ if(ui->textEdit->document()->isModified()) //改变了文本内容 { QMessageBox warnbox; warnbox.setWindowTitle(tr("warning")); warnbox.setIcon(QMessageBox::Warning); warnbox.setText(CurFile+tr("是否需要保存")); QPushButton *YButton = warnbox.addButton(tr("是(&Y)"),QMessageBox::YesRole); warnbox.addButton(tr("否(&N)"), QMessageBox::NoRole); QPushButton *CButton=warnbox.addButton(tr("取消"),QMessageBox::RejectRole); warnbox.exec(); if(warnbox.clickedButton()==YButton) { return Save(); } else if(warnbox.clickedButton()==CButton) return false; } return true; //文档没有更改返回true}void MainWindow::on_action_New_triggered() //转到槽{ NewFile();}void MainWindow::on_action_New_triggered(){ NewFile();} void MainWindow::on_action_Save_triggered(){ Save();}void MainWindow::on_action_SaveAs_triggered(){ SaveAs();}
主要的函数
其中界面通过QT UI设计 很方便
阅读全文
0 0
- Qt5 text_Editor(一)
- Qt5 text_Editor(二)
- Qt5 text_Editor(三)
- Qt5 text_Editor(四)
- QT5 OPenGL(一)
- TEXT_EDITOR应用
- Qt5与QML(一)
- Qt5串口通信(一)
- PyQt5和Qt5.5开发(一)
- VS2015+QT5简单例子(一)
- Qt5之数据库操作笔记(一)
- 在 Qt5中ROS开发(一)
- QT5知识点记录梳理(一)
- Qt5.9.1 qmake中文手册(一)
- Qt5--QSS(一)基本使用
- Qt5--QSS学习笔记(一)
- QT5每日一学(一)下载与安装
- 安装Qt5 (一)
- imshow('xx.jpg')和imshow('xx.jpg',[])的区别
- 并发编程 C++11 lock_guard
- C++ STL erase in for loop
- Mathtype中丢失Mplugin.dll的方法
- (POJ 2312)Battle City 优先队列 & 简单BFS
- Qt5 text_Editor(一)
- python 字符串与二进制串之间的转化
- 数字大小排序
- Java基础知识总结
- Python获取本机MAC地址,ip和主机名
- bzoj 1901/zoj 2112(主席树+树状数组)
- doget和dopost区别
- 阶层累乘 累加
- JVM的内存区域划分