Qt Quick Widgets App中简单功能的实现(新建,保存,另存为等)

来源:互联网 发布:1password mac 买断版 编辑:程序博客网 时间:2024/05/18 09:14

Qt Quick Widgets App中简单功能的实现(新建,保存,另存为等)

———————————————————————————————————————————————————————————————————————

在mainwindow.h文件中的private下加入以下语句。


bool isSaved; //为true时标志文件已经保存,为false时标志文件尚未保存


QString curFile; //保存当前文件的文件名


void do_file_New(); //新建文件


void do_file_SaveOrNot(); //修改过的文件是否保存


void do_file_Save(); //保存文件


void do_file_SaveAs(); //文件另存为


bool saveFile(const QString& fileName); //存储文件

_________________________________________________________________________________________________________________________________

在mainwindow.cpp中先加入头文件#include <QtGui>,然后在构造函数里添加以下几行代码。

5.2版本Qt中 头文件如下


isSaved = false; //初始化文件为未保存过状态


curFile = tr(“未命名.txt”); //初始化文件名为“未命名.txt”


setWindowTitle(curFile); //初始化主窗口的标题

_________________________________________________________________________________________________________________________________

在功能中的cpp中 加入下面代码实现功能,widget替换成当前命名文件的名称

 

#include "widget.h"#include "ui_widget.h"#include <QtGui>#include <QMessageBox>#include <QFileDialog>widget::widget(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::widget){    ui->setupUi(this);    isSaved = false; //初始化文件为未保存过状态    curFile = tr("未命名.txt"); //初始化文件名为“未命名.txt”    setWindowTitle(curFile); //初始化主窗口的标题}void widget::do_file_New() //实现新建文件的功能{    do_file_SaveOrNot();    isSaved = false;    curFile = tr("未命名.txt");    setWindowTitle(curFile);    ui->textEdit->clear(); //清空文本编辑器    ui->textEdit->setVisible(true); //文本编辑器可见}void widget::do_file_SaveOrNot() //弹出是否保存文件对话框{    if(ui->textEdit->document()->isModified()) //如果文件被更改过,弹出保存对话框    {        QMessageBox box;        box.setWindowTitle(tr("警告"));        box.setIcon(QMessageBox::Warning);        box.setText(curFile + tr("是否保存?"));        box.setStandardButtons(QMessageBox::Yes | QMessageBox::No);        if(box.exec() == QMessageBox::Yes) //如果选择保存文件,则执行保存操作            do_file_Save();    }}void widget::do_file_Save() //保存文件{    if(isSaved){ //如果文件已经被保存过,直接保存文件        saveFile(curFile);    }    else{        do_file_SaveAs(); //如果文件是第一次保存,那么调用另存为    }}void widget::do_file_SaveAs() //文件另存为{    QString fileName = QFileDialog::getSaveFileName(this,tr("另存为"),curFile);    //获得文件名    if(!fileName.isEmpty()) //如果文件名不为空,则保存文件内容    {        saveFile(fileName);    }}bool widget::saveFile(const QString& fileName)//保存文件内容,因为可能保存失败,所以具有返回值,来表明是否保存成功{    QFile file(fileName);    if(!file.open(QFile::WriteOnly | QFile::Text))        //以只写方式打开文件,如果打开失败则弹出提示框并返回    {        QMessageBox::warning(this,tr("保存文件"),tr("无法保存文件 %1:\n %2").arg(fileName).arg(file.errorString()));        return false;    }    //%1,%2表示后面的两个arg参数的值    QTextStream out(&file);   //新建流对象,指向选定的文件    out << ui->textEdit->toPlainText();   //将文本编辑器里的内容以纯文本的形式输出到流对象中    isSaved = true;    curFile = QFileInfo(fileName).canonicalFilePath(); //获得文件的标准路径    setWindowTitle(curFile); //将窗口名称改为现在窗口的路径    return true;}


 

 

 

0 0