QT新建文件、打开文件、保存文件

一、首页布局界面,如图所示的界面及对象名称:

二、在头部文件中添加槽:

    private slots:
    void calcSlot();
    //新建文件
    void createNewFile();
    //打开文件
    void openFileSlot();
    //保存文件

三、实现槽函数:

//新建文件
void MainWindow::createNewFile(){
    //如果当前文档的内容已经改变了
    if(ui->textAreaInput->document()->isModified()){
        qDebug()<<"is aready";
        return;
    }else{
        //qDebug()<<"is null for ecit";
        ui->textAreaInput->clear();
        this->setWindowTitle("新文档.txt");
    }
}

//打开文件
void MainWindow::openFileSlot(){
    QString fileName = QFileDialog::getOpenFileName(this,"Open File",QDir::currentPath());
    //qDebug()<<"文件名是:"<<fileName;
    if(fileName.isEmpty()){
        QMessageBox::information(this,"错误消息","请选择一个文件");
        return;
    }
    QFile *file = new QFile;
    file->setFileName(fileName);
    bool openFileOk = file->open(QIODevice::ReadOnly);
    if(openFileOk){
        //文件与文本流相关联
        QTextStream in(file);
        ui->textAreaInput->setText(in.readAll());
        file->close();
        delete file;
    }else{
        QMessageBox::information(this,"错误提示","打开文件失败:"+file->errorString());
        return;
    }
}

四、添加信号与槽的连接:

QObject::connect(ui->equalButton,SIGNAL(clicked()),this,SLOT(calcSlot()));
QObject::connect(ui->createNewAction,SIGNAL(triggered()),this,SLOT(createNewFile()));
QObject::connect(ui->openAction,SIGNAL(triggered()),this,SLOT(openFileSlot()));

版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编], 转载请备注出处: 狂码一生 http://www.sindsun.com/article-details-66.html [若此文确切存在侵权,请联系本站管理员进行删除!]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏七夜安全博客

你不知道的 HTTPS中间人攻击

研究生毕业了,好好给自己放了个假期,休息了两周,文章博客都没有更新。从大学开始基本上没过暑假,匆匆忙忙的。再过两天,就要去腾讯工作了,做了自己喜欢的网络安全,重...

13330
来自专栏Albert陈凯

2018-10-31 代码中的敏感信息加密方案

https://juejin.im/post/5bd79dc4f265da0acb13df0d

21140
来自专栏程序员Gank

【译】使用RxJava代替EventBus类库

如今的Android社区,人人都在讨论RxJava以及为什么我们应该在项目中使用RxJava。当我们开始在Android项目中使用RxJava的时候,就已经意识...

13820
来自专栏FreeBuf

Shellcode与加密流量之间的那些事儿

在这篇文章中,我们将简单介绍如何在通过TCP通信的位置无关代码(PIC)中实现数据加密。

12920
来自专栏小鄧子的技术博客专栏

【译】使用RxJava代替EventBus类库

如今的Android社区,人人都在讨论RxJava以及为什么我们应该在项目中使用RxJava。当我们开始在Android项目中使用RxJava的时候,就已经意识...

20620
来自专栏小白安全

小白博客 Linux下暴力破解工具Hydra详解

Number one of the biggest security holes are passwords, as every password secu...

86770
来自专栏网络

突破封闭 Web 系统的技巧之正面冲锋

在互联网安全服务公司乙方工作的人或者进行 SRC 众测等相关渗透测试时,经常碰到客户只给一个 "xxx信息管理系统"、"xxx平台"之类的一个 Web 登录界面...

293110
来自专栏FreeBuf

直面冥王:最新爆发的C#敲诈木马HadesLocker解读

近日哈勃分析系统捕获到一类由C#语言编写的新的敲诈勒索木马。之前出现 的C#语言编写的木马只是简单地调用了一些C#库来辅助开发。与之相比,这次的变种增加了多层嵌...

33660
来自专栏信安之路

无线渗透测试总结

如今,几乎人人都有手机,移动端设备数不胜数,手机、平板、笔记本都要使用无线网络,所以无线安全是非常重要的,本文的主要目的是无线渗透测试的方法总结,本文来源于老外...

15400
来自专栏偏前端工程师的驿站

.Net魔法堂:史上最全的ActiveX开发教程——部署篇

一、前言                                   接《.Net魔法堂:史上最全的ActiveX开发教程——发布篇》,后我们继续来部署...

20150

扫码关注云+社区

领取腾讯云代金券