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()<<"右键被按下";
}相关文章:
QT文件操作【记事本】
mainwindow.h核心函数 QFileDialog::getOpenFileName()QFileDialog::getSaveFileName() #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QFileDialog> #include<QMessageBox> #include<QDebug> #include<QFile> #…...
Linux 定时备份系统日志
Linux 定时备份系统日志 SSH跨机免密登录复制备份到另一台虚机上开启定时任务 SSH跨机免密登录 定时备份首先要实现免登入 一、scp 一个文件从其他服务器到本机,怎么跳过ssh登录验证呢? 要在使用SCP时跳过密码登录,你可以设置SSH密钥认证。首…...
音视频入门基础:FLV专题(15)——Video Tag简介
一、引言 根据《video_file_format_spec_v10_1.pdf》第75页,如果某个Tag的Tag header中的TagType值为9,表示该Tag为Video Tag: 这时StreamID之后紧接着的就是VideoTagHeader,也就是说这时Tag header之后的就是VideoTagHeader&…...
尚硅谷rabbitmq2024 第15-18节 springboot整合与可靠性答疑
在spring boot项目中,只引入了一个amqp的starter,为什么在写listener的时候能看到rabbitmq相关的类,比如RabbitListener( public void processMessage(String dataString, Message message, channel channel){ 这里的Message就是rabbitmq下面…...
ctfshow-web 萌新题
给她 pyload: 1.dirsearch扫描,发现git 2. GitHack工具得到.git文件 <?php $passsprintf("and pass%s",addslashes($_GET[pass])); $sqlsprintf("select * from user where name%s $pass",addslashes($_GET[name])); ?>addslashes函…...
基于RPA+AI的网页自动填写机器人 | OPENAIGC开发者大赛高校组优秀作品
在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…...
Tmux常用操作--云GPU版
Tmux是什么,作用? Tmux是一个终端复用器(terminal multiplexer),属于常用的开发工具。 作用 使用Tmux创建守护进程,可以使得关闭PyCharm或者其他终端的情况下,远程服务器(云GPU&a…...
股市入门常见术语介绍
鉴于最近行情讨论火热,我也想借此平台,结合我大学时期身边同学老师的投资经历,写一篇交易入门术语简介。内容不多但是足以达到科普之用。 希望大家能谨慎对待投资,始终保持谦虚学习的态度。不要迷失在瞬息万变的金融市场&…...
专栏十九:单细胞大数据时代使用scvi和scanpy整合数据
慢更ing,主要是记录自己在分析中的一些困惑 一、基础知识和解惑 放在最前面,是因为scvi整合不像harmony,傻瓜式操作,很多地方还是要注意一下的。 1.如何正确的寻找HVGs 一般我们使用的函数就是scanpy.pp.highly_variable_genes,里面的参数较为复杂。 Q:输入数据的格…...
C语言编程必备知识
C语言是编程领域中基础且广泛使用的语言之一,掌握C语言编程需要一些核心知识,涵盖基本语法、内存管理、数据结构等方面。以下是C语言编程中的一些必备知识点: 1. **基础语法** - **变量声明**:所有变量都需要在使用前声明&…...
k8s 1.28 集群部署
文章目录 环境配置安装docker安装cri-dockerd(Docker与Kubernetes通信的中间程序): 部署kubernetes 环境配置 关闭Selinux #永久 sed -i s/enforcing/disabled/ /etc/selinux/config #临时 setenforce 0 关闭Swap #临时 swapoff-a #永久 sed -ri s/.*swap.*/#&a…...
python入门教程
Python 是一种非常流行的编程语言,因其简单易学的语法和广泛的应用领域(如数据分析、人工智能、Web 开发等)而备受欢迎。以下是一个入门级 Python 教程,适合初学者快速掌握 Python 的基础知识。 1. 安装 Python 你可以从 Python…...
bat(批处理脚本学习)
输出banner echo off echo () echo JL echo ^|^| echo LJ echo _,--"""""""---. echo , …...
【JAVA毕业设计】基于Vue和SpringBoot的渔具租赁系统
本文项目编号 T 005 ,文末自助获取源码 \color{red}{T005,文末自助获取源码} T005,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 渔…...
Maven和Gradle的对比
Maven和Gradle都是Java项目构建工具,它们在帮助开发者管理项目依赖、编译、打包等方面发挥着重要作用。 Maven和Gradle的区别 1、语法与配置文件 Maven使用XML作为配置文件(如pom.xml)的语言,XML结构清晰但相对冗长。Gradle则使…...
Windows安装Ollama环境
在Windows环境下,可以安装Ollama,然后在其上面下载相应的大语言模式,下面是目前支持的LLM及相应的命令等信息: Model Parameters Size Download Llama 38B4.7GBollama run llama3Llama 370B40GBollama run llama3:70bPhi-33.8B2.3GBollama run phi3Mistral7B4.1GBollama ru…...
Java入门:11.抽象类,接口,instanceof,类关系,克隆
1 JDK中的包 JDK JRE 开发工具集(javac.exe) JRE JVM java类库 JVM java 虚拟机 jdk中自带了许多的包(类) , 常用的有 java.lang 该包中的类,不需要引用,可以直接使用。 例如࿱…...
【软件部署安装】OpenOffice转换PDF字体乱码
现象与原因分析 执行fc-list查看系统字体 经分析发现,linux默认不带中文字体,因此打开我们本地的windows系统的TTF、TTC字体安装到centos机器上。 安装字体 将Windows的路径: C:\Windows\Fonts 的中文字体,如扩展名为 TTC 与TT…...
工程师 - 开源硬件公司Adafruit介绍
https://www.adafruit.com/ https://github.com/adafruit 开源硬件公司 Adafruit 的发展历程 如果你是一名创客(Maker),那么你肯定听过 Adafruit;如果你在项目中使用过 Arduino,那么你应该也会知道 Adafruit。假如你没…...
PostgreSQL学习笔记五:数据库基本操作
在 PostgreSQL 中,您可以执行一系列基础操作来管理数据库、备份和恢复数据。以下是一些常用的命令和步骤: 创建数据库 使用以下命令创建新数据库: CREATE DATABASE database_name;您也可以在创建时指定数据库所有者和其他参数:…...
Arctic高性能数据存储:金融时间序列数据库的完整指南
Arctic高性能数据存储:金融时间序列数据库的完整指南 【免费下载链接】arctic High performance datastore for time series and tick data 项目地址: https://gitcode.com/gh_mirrors/ar/arctic Arctic是一个专为金融时间序列和 tick 数据设计的高性能数据…...
春节不用愁对联:春联生成模型实战,3步生成专属春联
春节不用愁对联:春联生成模型实战,3步生成专属春联 1. 传统年味遇上AI科技 每到春节,家家户户贴春联是延续千年的传统习俗。一副好春联既要对仗工整,又要寓意吉祥,还要符合自家特色,这让不少人为之头疼。…...
Android 性能优化:内存泄漏排查与解决
Android性能优化:内存泄漏排查与解决 在Android开发中,性能优化是提升用户体验的关键环节,而内存泄漏则是常见却容易被忽视的问题。内存泄漏会导致应用占用内存持续增加,最终引发卡顿、崩溃甚至被系统强制终止。如何高效排查与解…...
3D Face HRN算力优化:低配A10显卡实测稳定运行3D人脸重建
3D Face HRN算力优化:低配A10显卡实测稳定运行3D人脸重建 1. 项目背景与价值 3D人脸重建技术正在改变我们处理数字人脸的方式。传统的3D建模需要专业设备和复杂操作,而现在的AI技术只需要一张普通照片就能生成高质量的3D人脸模型。3D Face HRN基于先进…...
实战指南:利用Python可视化常见激活函数(Sigmoid、Tanh、ReLU、PReLU)及其特性对比
1. 为什么需要可视化激活函数? 在深度学习的世界里,激活函数就像是神经网络的"开关",决定了神经元是否应该被激活。但很多初学者在学习时,往往只是死记硬背公式,却不知道这些函数长什么样、在什么情况下会有…...
从零构建企业级Text2Sql应用:Vanna私有化部署与Dify工作流集成
1. 企业级Text2Sql应用的核心价值 想象一下,财务部门的同事对着Excel表格发愁:"能不能帮我找出上季度华东区销售额超过50万的所有客户?"传统做法需要找IT部门提需求,等开发人员写SQL查询,流程可能长达数三天…...
DeerFlow参数详解:vLLM服务日志排查(llm.log/bootstrap.log)实战
DeerFlow参数详解:vLLM服务日志排查(llm.log/bootstrap.log)实战 1. 认识DeerFlow:您的智能研究助手 DeerFlow是字节跳动基于LangStack技术框架开发的深度研究开源项目,它就像是您的个人研究团队,整合了语…...
YOLOFuse效果实测:低光、烟雾环境下,多模态检测精度提升明显
YOLOFuse效果实测:低光、烟雾环境下,多模态检测精度提升明显 1. 引言 在计算机视觉领域,目标检测技术已经取得了显著进展,但在低光照、烟雾等复杂环境下,传统基于RGB图像的单模态检测方法仍然面临巨大挑战。这些环境…...
Ext2Read:终极Windows读取Linux分区解决方案,3分钟快速上手
Ext2Read:终极Windows读取Linux分区解决方案,3分钟快速上手 【免费下载链接】ext2read A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows. 项目地址: https://gitcode.com/gh_mirrors/ex/ext2read 你是…...
ib_insync部署指南:生产环境下的稳定性和可靠性保障
ib_insync部署指南:生产环境下的稳定性和可靠性保障 【免费下载链接】ib_insync Python sync/async framework for Interactive Brokers API 项目地址: https://gitcode.com/gh_mirrors/ib/ib_insync 在金融交易系统的开发中,稳定可靠的API连接是…...
