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

QT文件操作【记事本】

主页面

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.lryc.cn/news/460681.html

相关文章:

  • Linux 定时备份系统日志
  • 音视频入门基础:FLV专题(15)——Video Tag简介
  • 尚硅谷rabbitmq2024 第15-18节 springboot整合与可靠性答疑
  • ctfshow-web 萌新题
  • 基于RPA+AI的网页自动填写机器人 | OPENAIGC开发者大赛高校组优秀作品
  • Tmux常用操作--云GPU版
  • 股市入门常见术语介绍
  • 专栏十九:单细胞大数据时代使用scvi和scanpy整合数据
  • C语言编程必备知识
  • k8s 1.28 集群部署
  • python入门教程
  • bat(批处理脚本学习)
  • 【JAVA毕业设计】基于Vue和SpringBoot的渔具租赁系统
  • Maven和Gradle的对比
  • Windows安装Ollama环境
  • Java入门:11.抽象类,接口,instanceof,类关系,克隆
  • 【软件部署安装】OpenOffice转换PDF字体乱码
  • 工程师 - 开源硬件公司Adafruit介绍
  • PostgreSQL学习笔记五:数据库基本操作
  • 住房公积金 计算器-java方法
  • Spring-Smart-DI
  • Python 在树莓派上实现WIFI连接
  • vmware下ubuntu18.04中使用笔记本的摄像头
  • 【Linux】最基本的杂项设备驱动
  • RadioGroup RadioButton底部导航栏
  • SQL分类中的DQL
  • 1.3.ReactOS系统 PAGED_CODE 宏函数的实现
  • 【论文速看】DL最新进展20241015-目标检测、图像超分
  • 京准电钟:NTP时间服务器让大数据时钟同步
  • SSL免费证书申请(七牛云/阿里云等)