QT文件操作【记事本】

embedded/2024/10/15 15:33:42/

主页面

mainwindow.h

核心函数

  • QFileDialog::getOpenFileName()
  • QFileDialog::getSaveFileName()
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include<QFileDialog>
#include<QMessageBox>
#include<QDebug>
#include<QFile>
#include<QKeyEvent>
#include<QMouseEvent>QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);void keyPressEvent(QKeyEvent *k);//父类虚函数,键盘按下事件void mousePressEvent(QMouseEvent *m);//鼠标按下事件~MainWindow();private:Ui::MainWindow *ui;
private slots:void newActionSlot();void openActionSlot();void saveActionSlot();
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->setWindowTitle("记事本");//连接函数,谁发出信息,发出什么信号,谁接收信号,执行什么操作//自定义三个槽函数,newActionSlot,openActionSlot,saveActionSlotconnect(ui->newAction,&QAction::triggered,this,&MainWindow::newActionSlot);connect(ui->openAction,&QAction::triggered,this,&MainWindow::openActionSlot);connect(ui->saveAction,&QAction::triggered,this,&MainWindow::saveActionSlot);
}MainWindow::~MainWindow()
{delete ui;
}
void MainWindow::newActionSlot()
{
//清空内容ui->textEdit->clear();this->setWindowTitle("新建文本文档.txt");
}
void MainWindow::openActionSlot()
{
//打开文件资源管理窗口,获取选定的文件的路径QString filename= QFileDialog::getOpenFileName(this, "打开文件",QCoreApplication::applicationFilePath(), "*.cpp");if(filename.isEmpty()){QMessageBox::warning(this,"警告","请打开一个文件!");}else{//qDebug() << filename;//通过文件路径,构建文件对象QFile file(filename);//只读方式打开file.open(QIODevice::ReadOnly);//读取文件中的所有内容到字节数组中QByteArray ba = file.readAll();//关闭文件对象file.close();//将读取的数据存储到textEdit中ui->textEdit->setText(QString(ba));}
}
void MainWindow::saveActionSlot()
{
//弹出文件资源管理器窗口,选择文件夹。
//QCoreApplication::applicationFilePath()表示当前根目录QString filename=QFileDialog::getSaveFileName(this,"保存文件",QCoreApplication::applicationFilePath());if(filename.isEmpty())QMessageBox::warning(this,"警告","请选择一个文件!");else{QFile file(filename);file.open(QIODevice::WriteOnly);QByteArray ba;ba.append(ui->textEdit->toPlainText().toUtf8());file.write(ba);file.close();QMessageBox::about(this,"提示","保存成功");}
}void MainWindow::keyPressEvent(QKeyEvent *k)
{
//键盘按下事件,一个父类的虚函数,能够检测键盘事件。Ctrl+S调用保存函数if(k->modifiers()==Qt::ControlModifier&&k->key()==Qt::Key_S)saveActionSlot();
}void MainWindow::mousePressEvent(QMouseEvent *m)
{QPoint pt = m->pos();qDebug()<<pt;if(m->button()==Qt::LeftButton)qDebug()<<"左键被按下";else if(m->button()==Qt::RightButton)qDebug()<<"右键被按下";
}

http://www.ppmy.cn/embedded/127928.html

相关文章

PHP-FPM和FastCGI

文章目录 前言一. FastCGI1.定义2.工作方式3.协议4.架构5.工作原理&#xff08;请求生命周期&#xff09; 二. PHP-FPM1.定义&#xff1a;2.特性3.进程管理模式4.工作流程 三.关系与应用四.配置示例五.性能优化六.配置选项七.常见问题及解决方案 前言 PHP-FPM 是基于 FastCGI …

【计算机网络 - 基础问题】每日 3 题(四十)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

【原创】可用于 Android Studio 的翻译插件

在不少讲解Android 开发的老师视频中会出现一个运行在Android Studio 上的翻译插件&#xff0c;感觉挺实用的。 接下来&#xff0c;我们把它安装在我们的Android Studio 上。 设置 点击右上角齿轮按钮&#xff0c;选择Settings 安装 翻译插件 输入Tanslation&#xff0c;选…

计算机网络:数据链路层 —— 以太网(Ethernet)

文章目录 局域网局域网的主要特征 以太网以太网的发展100BASE-T 以太网物理层标准 吉比特以太网载波延伸物理层标准 10吉比特以太网汇聚层交换机物理层标准 40/100吉比特以太网传输媒体 局域网 局域网&#xff08;Local Area Network, LAN&#xff09;是一种计算机网络&#x…

Java设计模式——装饰模式

目录 模式动机 模式定义 模式结构 类图 代码分析 示例&#xff1a;动态添加功能的流 组件接口 具体组件 装饰抽象类 具体装饰类 客户端 模式分析 核心思想 动态扩展功能 组合优于继承 优点 动态扩展功能 组合优于继承 代码复用性高 符合开闭原则 缺点 增加…

打破传统:机器学习与神经网络获2024年诺贝尔物理学奖引发的思考

诺贝尔物理学奖首次颁发给机器学习与神经网络领域的研究者&#xff0c;这一结果无疑引起了广泛关注&#xff0c;并引发了大量的讨论与思考。作为一项传统上旨在表彰对自然科学&#xff0c;尤其是物理学领域作出突出贡献的奖项&#xff0c;这次将荣誉授予一个长期与计算机科学、…

四川方维嘉术科技有限公司简介

四川方维嘉术科技有限公司 公司简介 四川方维嘉术科技有限公司成立于2023年&#xff0c;注册资本100万元整&#xff0c;位于中国西南地区的中心位置&#xff0c;是一家专注于供应医疗设备、高值耗材并提供医疗方面解决方案的企业。 【主要代理产品】 湖南瑞康通 &#xff1…

Unity3D 同步怪物实体到客户端详解

在游戏开发中&#xff0c;经常会遇到需要同步怪物实体到客户端的需求。本文将详细介绍如何在Unity3D中实现怪物实体的同步&#xff0c;并给出技术详解以及代码实现。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;大家可以点击进来一起交流一下开发经验呀&#xff…