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

news/2024/4/27 7:23:17

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://www.cpky.cn/p/10618.html

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

相关文章

力扣--最小覆盖子串--双端队列+滑动窗口

滑动窗口思路&#xff08;双端队列实现&#xff09;&#xff1a; 可以参考一下&#xff1a;力扣hot8---滑动窗口-CSDN博客以及力扣hot9---滑动窗口-CSDN博客。 使用滑动窗口有以下几个步骤&#xff1a;初始化双端队列&#xff08;将s的前t_len个元素入队&#xff0c;此时检验是…

海康威视H5无插件方式显示WSS协议的视频的笔记

由于要在麒麟桌面系统的浏览器也能显示视频&#xff0c;以前的插件方式就不行了。 一、从官网下载文档和demo 打开官网https://open.hikvision.com/download/5c67f1e2f05948198c909700?type10 下载H5开发文件和demo 二、放入我的vue2的项目中 把demo中的相关文件复制到我…

伊理威科技:抖音商家入驻怎么样

随着短视频平台兴起&#xff0c;抖音已成为商家营销的新阵地。但商家入驻抖音&#xff0c;究竟是机遇还是挑战?让我们一探究竟。 抖音的流量红利不容小觑。据统计&#xff0c;日活跃用户数以亿计&#xff0c;这为商家提供了巨大的潜在客户群。通过精准算法推荐&#xff0c;商品…

vscode中解决驱动编写的时候static int __init chrdev_init()报错的问题

目录 错误出错原因解决方法 错误 在入口函数上&#xff0c;出现 expected a ; 这样的提示 出错原因 缺少了 __KERNEL __ 宏定义 解决方法 补上__KERNEL__宏定义 具体做法&#xff1a;在vscode中按下ctrlshiftp &#xff0c;输入&#xff1a;C/C:Edit Configurations&#xff0…

【C初阶】文件操作管理

1.使用文件的意义 用于处理大型数据&#xff0c;长久性的存储数据、 2.文件的概念 文件&#xff1a;电脑硬盘上的存储数据的文件 分类 按照内容&#xff1a;程序文件、数据文件 按照形式&#xff1a;文本文件、二进制文件 文件名&#xff1a;文件的唯一标识&#xff0c;一…

web学习笔记(三十三)

目录 1.严格模式 1.1严格模式的概念&#xff1a; 1.2严格模式在语义上更改的地方&#xff1a; 1.3如何开启严格模式 1.4严格模式应用上的变化 2.原型链 1.严格模式 1.1严格模式的概念&#xff1a; 严格模式有点像es5向es6过渡而产生的一种模式&#xff0c;因为es6的语法…