当前位置: 首页 > news >正文

C++-Qt【2】-实现一个简单的记事本

用Qt实现一个简单的记事本:

#include "helloqt.h"
#include <qfiledialog.h>
#include <qfile.h>
#include <qmessagebox.h>
#include <qtextstream.h>
#include <qdebug.h>

//#if _MSC_VER >= 1600      
//#pragma execution_character_set("utf-8")      
//#endif

HelloQt::HelloQt(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
}

HelloQt::~HelloQt()
{

}

void HelloQt::on_pushButton_clicked() {
    qDebug() << "new line";
    ui.textEdit->append("你点击了我!");
}

void HelloQt::on_action_Open_triggered() {
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), QString(),
        tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));

    if (!fileName.isEmpty()) {
        QFile file(fileName);
        if (!file.open(QIODevice::ReadOnly)) {
            QMessageBox::critical(this, tr("Error"), tr("Could not open file"));
            return;
        }
        QTextStream in(&file);
        ui.textEdit->setText(in.readAll());
        file.close();
    }
}

void HelloQt::on_action_Save_triggered() {
    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), QString(),
        tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));

    if (!fileName.isEmpty()) {
        QFile file(fileName);
        if (!file.open(QIODevice::WriteOnly)) {
            // error message
        }
        else {
            QTextStream stream(&file);
            stream << ui.textEdit->toPlainText();
            stream.flush();
            file.close();
        }
    }
}

void HelloQt::on_action_Exit_triggered() {
    qApp->exit(0);
}

 

转载于:https://www.cnblogs.com/godcity/p/5919777.html

相关文章:

  • Python 学习之---文件目录处理
  • bootstrap0
  • 常用快速原型设计工具大比拼、原型设计工具哪个好用
  • Spring注入方式(1)
  • JSTL自定义标签
  • WIN10使用管理员权限运行VS2013
  • jq宽高 详解
  • 转载:第二弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿!每日更新!...
  • 完全错排问题
  • sql相关记录
  • mysql 5.7.15 安装配置方法图文教程(转)
  • 2015年最新高清大內WEB前端开发视频教程
  • Linux(Debian)上安装Redis教程
  • 北大OJ 1001题
  • Android中软键盘弹出时底部菜单上移问题
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【Linux系统编程】快速查找errno错误码信息
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • CentOS7简单部署NFS
  • co.js - 让异步代码同步化
  • Java Agent 学习笔记
  • JSDuck 与 AngularJS 融合技巧
  • js中的正则表达式入门
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • LeetCode算法系列_0891_子序列宽度之和
  • Promise初体验
  • Redis的resp协议
  • Redux系列x:源码分析
  • vue-cli在webpack的配置文件探究
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 阿里云购买磁盘后挂载
  • 码农张的Bug人生 - 见面之礼
  • 三分钟教你同步 Visual Studio Code 设置
  • 线上 python http server profile 实践
  • 学习HTTP相关知识笔记
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • # Java NIO(一)FileChannel
  • #define、const、typedef的差别
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • ()、[]、{}、(())、[[]]命令替换
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C++)八皇后问题
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .net CHARTING图表控件下载地址
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET企业级应用架构设计系列之结尾篇
  • /etc/skel 目录作用
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku