#QT(MainWindow初尝---文本编辑器)

1.IDE:QTCreator


2.实验:使用MainWindow做一个文本编辑器


3.记录

(1)创建几个功能 

 (2)为几个功能写实现,这里不能使用转到槽,需要自己用connect函数关联。这里的功能是QAction类,退格搜查其槽函数来进行绑定

(3)打开文件操作,主要查看QFileDialog类说明还有QFile类说明,QFileDialog用于选取文件,QFile用于操作文件。

(4)文件操作基本流程:

a.通过QFileDialog得到文件名字

b.将得到的名字给QFile创建对象进行操作。

c.QFile打开创建的对象设置权限(只读,只写,读写)

d.QFile操作对象(read,write)

e.操作完毕(close)

(5)写入的数据期望为QByteArrary,如何将其转换为该类型使用append函数,具体查看类说明

    bytearray.append(ui->textEdit->toPlainText());file.write(bytearray);

(6)对于文件保存,可以存储不同类型的文件,只需要自己添加后缀即可

 


4.代码

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void CreateNewFile(void);    //创建新文件void Exit(void);         //退出void OpenFile(void);    //打开文件void SaveFile(void);   //保存文件
private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QFile>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->CreateFile,&QAction::triggered,this,&MainWindow::CreateNewFile);   //关联创建新文件函数sconnect(ui->OpenFile,&QAction::triggered,this,&MainWindow::OpenFile);   //关联打开文件函数connect(ui->Exit,&QAction::triggered,this,&MainWindow::Exit);   //关联退出函数connect(ui->SaveFile,&QAction::triggered,this,&MainWindow::SaveFile);   //关联保存函数
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::CreateNewFile()    //创建新文件
{ui->textEdit->clear();this->setWindowTitle("新建文本.txt");
}void MainWindow::Exit()    //退出
{this->close();
}void MainWindow::OpenFile() //打开文件
{QString filename=QFileDialog::getOpenFileName(this,"选择打开的文件","C:/Users/***/Desktop/hook","*.*");     //打开文件夹,并且不筛选文件后缀QFile file(filename);file.open(QIODevice::ReadWrite);QByteArray filecontent=file.readAll();ui->textEdit->setText(filecontent);file.close();this->setWindowTitle(filename);
}void MainWindow::SaveFile()  //保存文件
{QString savefilename=QFileDialog::getSaveFileName(this,"保存为","C:/Users/***/Desktop/hook/","*.*");QFile file(savefilename);file.open(QIODevice::WriteOnly);QByteArray bytearray;bytearray.append(ui->textEdit->toPlainText());file.write(bytearray);file.close();this->setWindowTitle(savefilename);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2869076.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL初阶2——索引的初步理解

目录 一、索引的概念和使用 1. 索引是什么 2. 索引的使用 2.1 查看索引 2.2 创建索引 2.3 删除索引 3. 索引使用的注意事项 二、索引的核心内容——底层的数据结构 1. 前景引入 2. 索引使用的数据结构 2.1 基础版—— B 树 2.2 升级版—— B 树 重点&#xff1a;如…

StarRocks面试题及答案整理,最新面试题

StarRocks 的 MV&#xff08;物化视图&#xff09;机制是如何工作的&#xff1f; StarRocks 的物化视图&#xff08;MV&#xff09;机制通过预先计算和存储数据的聚合结果或者转换结果来提高查询性能。其工作原理如下&#xff1a; 1、数据预处理&#xff1a; 在创建物化视图时…

【计算机视觉】二、图像形成——实验:2D变换编辑(Pygame)

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)2D变换编辑器0. 程序简介环境说明程序流程 1. 各种变换平移变换旋转变换等比缩放变换缩放变换镜像变换剪切变换 2. 按钮按钮类创建按钮 3. Pygam…

[第二章]二分与前缀和

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

谷歌Gemma大模型本地部署以及线上访问流程

1.谷歌开发出强大的 AI 模型 Gemma&#xff0c;该模型可以在笔记本电脑和台式机上运行&#xff0c;这真是太棒了&#xff01;开源的 Gemma 模型将使研究人员和开发人员能够更轻松地访问和利用其功能&#xff0c;从而为人工智能领域带来更多创新。【【【【本地安装】】】 下载安…

设计模式在芯片验证中的应用——装饰器

一、装饰器模式 装饰器模式(Decorator)是一种结构化软件设计模式&#xff0c;它提供了一种通过向类对象添加行为来修改类对象的方法&#xff0c;而不会影响同一类的其它对象行为。该模式允许在不修改抽象类的情况下添加类功能。它从本质上允许基类代码对不可预见的修改具有前瞻…

算法导论第十章练习参考答案(18) - 10.1-10.4

Exercise 10.1-1 Exercise 10.1-2 我们将栈命名为T和R。首先&#xff0c;设置T.top 0和R.top n 1。实际上&#xff0c;栈T使用数组的第一部分&#xff0c;栈R使用数组的最后一部分。在栈T中&#xff0c;top是T中最右边的元素。在栈R中&#xff0c;top是R中最左边的元素。 E…

超越 GPT4,科大讯飞,再出王炸!

哈喽&#xff0c;大家好&#xff01; 去年&#xff0c;科大讯飞星火大模型上线&#xff0c;给大家推荐了一波&#xff0c;演示了其强大的功能&#xff0c;不少小伙伴都立马申请体验了一把&#xff0c;也有私信说非常强大&#xff0c;工作效率提高不少&#xff0c;支持国产大模…

Java代码基础算法练习-判断字符串是否为回文-2024.03.16

任务描述&#xff1a; 回文串是指一个正读和反读都一样的字符串&#xff0c;比如“level”或者“noon”等。要求输入 一个字符串&#xff0c;判断此字符串是否为回文。&#xff08;注&#xff1a;设字符串长度小于20&#xff09; 任务要求&#xff1a; package suanfa;import…

一文全面了解向量数据库

1. 什么是向量数据库&#xff1f;** 首先&#xff0c;我们需要理解什么是向量&#xff1f; 向量是基于不同特征或属性来描述对象的数据表示。每个向量代表一个单独的数据点&#xff0c;例如一个词或一张图片&#xff0c;由描述其许多特性的值的集合组成。这些变量有时被称为“…

3.2_5 内存映射文件

文章目录 3.2_5 内存映射文件&#xff08;一&#xff09;传统的文件访问方式&#xff08;二&#xff09;内存映射文件&#xff08;Memory-Mapped Files&#xff09; 总结 3.2_5 内存映射文件 &#xff08;一&#xff09;传统的文件访问方式 磁盘的存储是以块为单位的&#xff0…

2024年腾讯云4核8G12M服务器可容纳多大访问量?

腾讯云轻量4核8G12M服务器配置446元一年&#xff0c;646元12个月&#xff0c;腾讯云轻量应用服务器具有100%CPU性能&#xff0c;系统盘为180GB SSD盘&#xff0c;12M带宽下载速度1536KB/秒&#xff0c;月流量2000GB&#xff0c;折合每天66.6GB流量&#xff0c;超出月流量包的流…

【JVM】GCRoot

GC root原理 通过对枚举GCroot对象做引用可达性分析&#xff0c;即从GC root对象开始&#xff0c;向下搜索&#xff0c;形成的路径称之为 引用链。如果一个对象到GC roots对象没有任何引用&#xff0c;没有形成引用链&#xff0c;那么该对象等待GC回收。 可以作为GC Roots的对…

Jacobian matrix雅可比矩阵

参考链接 https://www.youtube.com/watch?vwUF-lyyWpUc&listPLEZWS2fT1672lJI7FT5OXHJU6cTgkSzV2&index6

python二级备考(2)-简单应用题

第1套 使用turtle库的turtle. right()函数和turtle.fd()函数绘制一个菱形&#xff0c;边长为200像素&#xff0c;4个内角度数为2个60度和2个120度 键盘输入一组人员的姓名、性别、年龄等信息&#xff0c;信息间采用空格分隔&#xff0c;每人一行&#xff0c;空行回车结束录入&a…

电子供应链的未来:电子元器件采购商城的洞察

电子供应链的未来将受到数字化技术、智能化制造和全球化贸易等趋势的深刻影响。在这一背景下&#xff0c;电子元器件采购商城将发挥越来越重要的作用&#xff0c;并提供以下洞察&#xff1a; 数字化转型&#xff1a; 电子元器件采购商城将更加注重数字化转型&#xff0c;通过引…

使用数字人SadTalker创建免费AI主播

很有趣的GitHub项目SadTalker&#xff0c;它能够将一张图片跟一段音频合成一段视频&#xff0c;看起来毫无违和感&#xff0c;如果不仔细看&#xff0c;甚至很难辨别真假&#xff0c;预计未来某一天&#xff0c;一大波网红即将失业。 虽然这个项目目前的主要研究方向还是基于c…

【软考高项】七、信息技术发展之存储、数据库、信息安全

1、存储知识点 存储类型分&#xff1a;封闭式&#xff08;小型机&#xff09;和开放式&#xff08;服务器&#xff09; 其中开放式又分内置和外挂存储&#xff08;直连DAS、网格FAS&#xff08;NAS/SAN&#xff09;&#xff09; 2、数据库知识点 数据结构模型&#xff1a; …

2核4G云服务器能支持多少人同时访问?性能测评来了

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;5M带宽下载速度峰值可达640KB/秒&#xff0c;阿腾云以搭建网站为例&#xff0c;假设优化后平均大小为60KB&#xff0c;则5M带宽可支撑10个用户同时在1秒内打开网站&#xff0c;并发数为10&#xff0c;经阿腾云测试&a…

Java中为什么只有值传递?

Java中为什么只有值传递&#xff1f; 对于对象参数而言&#xff0c;实际参数传递给形式参数的只是一个内存地址&#xff0c;让形式参数也指向实际参数所指向的地址&#xff0c;传递的值的内容是对象的引用。 为什么会是这样&#xff1f;让我慢慢为你讲解。 对于Java的传递类…