35_文本编辑器中的数据存取

2018-02-27 10:52:00来源:https://www.jianshu.com/p/34aeb0d4d39f作者:jacob2359人点击

分享


关键词:QAction的信号、文件打开操作、文件保存操作、文件另存为操作


1. QAction的信号

QAction被点击之后会产生一个triggered信号
通过信号与槽的机制能够捕捉对QAction对象的操作,项目中可以将多个信号映射到同一个槽函数
connect(action, 
SIGNAL(triggered()),
this,
SLOT(slot_function()))

2. 文件打开操作



void MainWindow::onFileOpen()
{
QString path = showFileDialog(QFileDialog::AcceptOpen, "Open");
if( path != "")
{
QFile file(path);
if( file.open(QIODevice::ReadOnly | QIODevice::Text)) //文件打开成功
{
mainEditor.setPlainText(QString(file.readAll()));
file.close();
m_filePath = path;
setWindowTitle("NotePad - [" + m_filePath + "]");
}
else // 文件打开失败,弹出对话框提示
{
showErrorMessage(QString("Open file error! /n/n") + "/"" + path + "/"");
}
}
}

3. 文件保存操作



void MainWindow::onFileSave()
{
if(m_filePath == "")
{
m_filePath = showFileDialog(QFileDialog::AcceptSave, "Save");
}
if( m_filePath != "")
{
QFile file(m_filePath);
if( file.open(QIODevice::WriteOnly | QIODevice::Text) )
{
QTextStream out(&file);
out << mainEditor.toPlainText();
file.close();
setWindowTitle("NotePad - [" + m_filePath + "]");
}
else
{
showErrorMessage(QString("Save file error! /n/n") + "/"" + m_filePath + "/"");
m_filePath = "";
}
}
}

4. 文件另存为操作



 void MainWindow::onFileSaveAs()
{
QString path = showFileDialog(QFileDialog::AcceptSave, "Save As");
if (path != "")
{
QFile file(path);
if( file.open(QIODevice::WriteOnly | QIODevice::Text) )
{
QTextStream out(&file);
out << mainEditor.toPlainText();
file.close();
m_filePath = path;
setWindowTitle("NotePad - [" + m_filePath + "]");
}
else
{
showErrorMessage(QString("Save file error! /n/n") + "/"" + path + "/"");
}
}
}

5. 小结
Qt项目中尽量将界面代码与功能代码分离开
Qt项目开发时尽量复用平台中提供的相关组件
Qt项目中的多数情况都是编写相应的槽函数
槽函数用于相应用户操作
槽函数是具体功能的触发点


声明:此文章仅是本人在学习狄泰QT实验分析课程所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4









最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台