QT DAY3

完善文本编辑器

1.mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QDebug>
#include <QIcon>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QMessageBox>#include <QFontDialog>
#include <QFont>
#include <QColorDialog>
#include <QColor>
#include <QFileDialog>
#include <QFile>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_fontBtn_clicked();void on_colorBtn_clicked();void on_openBtn_clicked();void on_saveBtn_clicked();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

2.mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_fontBtn_clicked()
{//字体bool ok;QFont f=QFontDialog::getFont(&ok,QFont("宋体",10,4,false),this,"选择字体");if(ok){ui->textEdit->setCurrentFont(f);}else{QMessageBox::information(this,"提示","用户没有选择字体");}
}void MainWindow::on_colorBtn_clicked()
{QColor c= QColorDialog::getColor(QColor(100,100,100),this,"选择字体颜色");if(c.isValid()){ui->textEdit->setTextColor(c);}else {QMessageBox::information(this,"提示","用户没有选择字体颜色");}QColor b= QColorDialog::getColor(QColor(100,50,30),this,"选择字体背景颜色");if(b.isValid()){ui->textEdit->setTextBackgroundColor(b);}else {QMessageBox::information(this,"提示","用户没有选择字体背景颜色");}
}void MainWindow::on_openBtn_clicked()
{QString filename=QFileDialog::getOpenFileName(this,"选择文件","./","所有文件(*.*);;头文件(*.h);;图片(*.png *.jpg *.xpm);;文本(*.txt)");qDebug()<<filename;//1.实例化文件对象QFile file(filename);//2.判断文件是否存在if(!file.exists()){QMessageBox::information(this,"提示","文件不存在");return;}//3.打开文件if(!file.open(QIODevice::ReadWrite)){QMessageBox::information(this,"错误","文件打开失败");}//4.文件读写QByteArray msg=file.readAll();//5.关闭文件file.close();//将读取下来的数据展示到UI界面的文本框上
//    ui->textEdit->setText(QString::fromLocal8Bit(msg));ui->textEdit->setText(QString::fromUtf8(msg));}void MainWindow::on_saveBtn_clicked()
{QString filename=QFileDialog::getSaveFileName(this,"选择文件","./","所有文件(*.*);;头文件(*.h);;图片(*.png *.jpg *.xpm);;文本(*.txt)");qDebug()<<filename;//1.实例化文件对象QFile file(filename);//2.判断文件是否存在if(!file.exists()){QMessageBox::information(this,"提示","文件不存在");return;}//3.打开文件if(!file.open(QIODevice::Append)){QMessageBox::information(this,"错误","文件打开失败");}//4.获取UI界面的文本框上的数据QString msg_1=ui->textEdit->toPlainText();QString msg_2="\n";QString msg=msg_2+msg_1;//5.文件读写file.write(msg.toLocal8Bit());//6.关闭文件file.close();QMessageBox::information(this,"提示","文件保存成功");
}

打开功能展示

 保存功能展示

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Web3】Web3Js高频Api

目录 Web3Js方法 初始化Web3实例 Web3Api 创建账号Api 获取余额Api 单位转换工具函数 Web3Js方法 web3.eth&#xff1a;用于与以太坊区块链和智能合约之间的交互。 web3.utils&#xff1a;包含一些辅助方法。 web3.shh&#xff1a;用于协议进行通信的P2P和广播。 web3…

Qt实现思维导图功能(五)

前文链接&#xff1a;Qt实现思维导图功能&#xff08;四&#xff09; 思维导图纵向分布模式&#xff1a;模式一 百度网盘体验地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1YNSBiFOUwnSSKvHsBvOT3g 提取码&#xff1a;ifyc动态演示效果 静态展示图片 前文BUG维…

Linux:PXE网络装机

要实现需要开启以下服务 dhcp --- 开机没有u盘或光盘的引导电脑会去寻找网络中的引导 tftp --- 用于引导系统 ftp&& http --- 制作yum仓库让引导的系统去ftp或者http上找rpm包 1.ftp&& http yum仓库搭建 Linux&#xff1a;YUM仓库服务_鲍海超-GNUBHC…

HTML 中的常用标签用法

目录 一、html页面基本组成 二、常用的标签 &#xff08;1&#xff09;div &#xff08;2&#xff09;p标签 &#xff08;3&#xff09;h1-h6 &#xff08;4&#xff09;b标签/strong &#xff08;5&#xff09;span &#xff08;6&#xff09;br与hr &#xff08;7&#…

【计算机组成与体系结构Ⅰ】实验4 存储器原理实验

一、实验目的 1&#xff1a;了解双端口静态存储器IDT7132的工作特性及使用方法。 2&#xff1a;了解半导体存储器如何读写。 二、实验总结 0&#xff1a;实验内容 双端口存储器RAM&#xff1a; 左端口的数据部分与数据总线DBUS7-DBUS0相联&#xff1b;右端口的数据引脚与指…

阿里云服务拆分部署

最近在工作中遇到需要将现网运行的服务拆分出一套&#xff0c;放置于本地机房&#xff0c;拆分服务运行有两种方案&#xff1a; 第一种是本地部署一个独立spring应用&#xff0c;业务上的要求是尽量隔离 第二种是采用阿里集群部署 采用第二种方案目前看是隔离度最高的

基于springboot+Redis的前后端分离项目之分布式锁(四)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 分布式锁 分布式锁1 、基本原理和实现方式对比2 、Redis分布式锁的实现核心思路3 、实现分布式锁版本一4 、Redis分布式锁误删情况…

硬盘或者U盘提示需要格式化的解决办法

插入硬盘之后提示&#xff1a; 使用驱动器 G:中的光盘之前需要将其格式化 是否要将其格式化? 如下图所示 顿时慌了啊&#xff0c;里面还有比较重要的东西呢&#xff0c;这一下子完蛋&#xff1f; 遇事找某宝&#xff0c;上面估计有这种技术服务。果然有这一类的技术服务&…

飞书接入机器人NODE开发自动回复

一、创建飞书应用 1.登录飞书开放平台 进入开发者后台 创建自建应用 2.添加应用能力 选择机器人添加 3.添加事件订阅并根据权限开通权限 此处只添加获取消息事件 4.配置应用服务端地址&#xff08;当事件触发 会触发设置的地址 并发送事件数据&#xff09;开启Encrypt Key 实…

Spring Boot 中的任务执行器是什么,如何使用

Spring Boot 中的任务执行器是什么&#xff0c;如何使用 Spring Boot 是一个非常流行的 Java 开发框架&#xff0c;它的核心理念是通过简单的配置和约定来提高开发效率。在很多情况下&#xff0c;我们需要在后台执行一些任务&#xff0c;比如异步处理、定时任务等等。为了简化…

【ARM Coresight 系列文章 3 - ARM Coresight 组件 DAP(Debug Access Port) 介绍】

文章目录 1.1 Debug Access Port1.2 Access Port1.2.1 IDR 寄存器 1.3 Mem-APs 介绍1.3.1 Debug 寄存器访问模型1.3.2 APs 中寄存器的介绍 1.1 Debug Access Port 外部 Debugger(DS-5/Trace32) 会通过JTAG接口或者SWD接口和DAP相连&#xff1a; JITAG 一般是5个pin&#xff1…

qt对话框

完善文本编辑器 #include "second.h" #include "ui_second.h"second::second(QWidget *parent) :QWidget(parent),ui(new Ui::second) {ui->setupUi(this);this->setWindowTitle("聊天室界面");//设置标题this->setWindowIcon(QIcon(&…