04/27课后作业(Qt)

news2025/1/22 15:07:33

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setWindowTitle("文件管理");
}

Widget::~Widget()
{
    delete ui;
}

//字体按钮对应的槽函数
void Widget::on_fontBtn_clicked()
{
    bool ok;            //返回是否选中字体
    QFont f = QFontDialog::getFont(&ok,QFont("隶书",20,5,true),this,"字体");
    //功能:调出系统字体对话框  1.返回选中字体状态  2.初始字体  3.父组件   4.对话框标题

    //将选中的字体设置到文本编辑器中
    if(ok) {
        //        ui->msgEdit->setFont(f);            //将全部字体设置
        ui->msgEdit->setCurrentFont(f);            //给选中的字体设置
    }else {
        //
    }

}

//颜色按钮对应的槽函数
void Widget::on_colorBtn_clicked()
{
    //调取颜色对话框
    QColor c = QColorDialog::getColor(QColor(172,196,237),this,"颜色");

    //判断颜色是否合法
    if(c.isValid()){
        //将颜色添加到文本
        //        ui->msgEdit->setTextColor(c);           //给选中的字体设置(前景色)
        ui->msgEdit->setTextBackgroundColor(c);         //给选中的字体设置(背景色)
    }

}

//打开文件按钮对应的槽函数
void Widget::on_openfileBtn_clicked()
{
    //    QString filename = QFileDialog::getOpenFileName(this,"选择文件", "./../../", "Image Files (*.txt *.png *.jpg *.bmp)");
    QString filename = QFileDialog::getOpenFileName(this,"选择文件", "./../../", "All(*.*);;Txt(*.txt);;c程序(*.c);;Png(*.png);;Jpg(*.jpg);;Bmp(*.bmp)");
    //1.父组件      2.窗口名   3.路径    4.文件类型
    qDebug() << filename;

    //使用QFILE类实例化一个对象,可以用获取的路径名进行构造
    QFile f(filename);
    //打开文件(读写)
    if(!f.open(QFile::ReadWrite)){
        //        QMessageBox::warning(this,tr("提示"),tr("文件不存在"));
        return;
    }
    //读取文件内容,将文件内容放到ui界面
    QByteArray msg = f.readAll();           //将文件中内容全部读出来 msg以字节为单位的起始地址

    //将读取到的内容放到ui界面
    ui->msgEdit->setText(msg);

    //关闭文件
    f.close();

}

//保存文件按钮对应的槽函数
void Widget::on_savefileBtn_clicked()
{
    QString filename = QFileDialog::getSaveFileName(this,"文件保存为","./../../","Txt(*.txt);;c程序(*.c);;Png(*.png);;Jpg(*.jpg);;Bmp(*.bmp);;All(*.*)");
    qDebug() << filename;

    QFile f(filename);
    if(!f.open(QFile::WriteOnly)){
        return;
    }
    else
    {
        QTextStream textStream(&f);
        textStream.setCodec("UTF-8");
        QString str = ui->msgEdit->toPlainText();
        //        qDebug() << str;

        textStream << str;
        QMessageBox::information(this,tr("提示"),tr("保存文件成功"));

        f.close();
    }
}

1.打开文件

 2.编辑

 3.保存

 4.再次打开

 

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

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

相关文章

Spring Boot——@Autowired属性注入问题

&#x1f388; Autowired问题 当我们在使用Autowired属性注入时,会发现idea提示Field injection is not recommended ,译为:不推荐使用属性注入   要想了解Spring和idea之所以不推荐使用Autowired属性注入,首先就要先了解Spring常用的注入方式&#xff1a;简单类型注入、集…

基于Redis的分布式限流详解

前言 Redis除了能用作缓存外&#xff0c;还有很多其他用途&#xff0c;比如分布式锁&#xff0c;分布式限流&#xff0c;分布式唯一主键等&#xff0c;本文将和大家分享下基于Redis分布式限流的各种实现方案。 一、为什么需要限流 用最简单的话来说&#xff1a;外部请求是不可…

ArcGIS Pro拓扑

地理数据库拓扑帮助确保数据完整性。拓扑的使用提供了一种对数据执行完整性检查的机制&#xff0c;帮助地理数据库中验证和保持更好的要素表示。 拓扑是点、线和多边形要素共享几何的方式的排列布置。拓扑的用途包括以下几个方面&#xff1a; &#xff08;1&#xff09;限制要…

模型服务,支持渲染多张输出图片|ModelWhale 版本更新

清明时节雨纷纷。晚春的雨季中&#xff0c;ModelWhale 迎来了新一轮的版本更新。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; • 新增 模型服务多图输出渲染&#xff08;专业版✓ 团队版✓ &#xff09; • 优化 门户成果交流展示&#xff08;团队…

Java异常机制

异常概念 异常是程序在运行期发生的不正常的事件&#xff0c;它会打断指令的正常执行流程。 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法&#xff0c;使程序不会因为异常的发生而阻断或产生不可预见的结果。 Java语言使用异常处理机制为程序提供了异常处理的能…

卡尔曼滤波简介 —— 一维卡尔曼滤波

原文&#xff1a;The alpha - beta - gamma filter (kalmanfilter.net) 一维卡尔曼滤波 在本章中&#xff0c;我们将在一个维度上推导出卡尔曼滤波。本章的主要目标是简单直观地解释卡尔曼滤波的概念&#xff0c;而不使用可能看起来复杂和令人困惑的数学工具。 我们将逐步推进…

oracle connect by 学习

【Connect by 层次查询】 https://www.bilibili.com/video/BV1jV411t7CB/?share_sourcecopy_web&vd_sourced88a617727cccf1c106d623afec0c6b6 简单来说这个connect by 就是为了查父子节点的。 CREATE TABLE test.emp (id varchar(10),name varchar(10),manager_id varch…

Java的位运算

目录 1 Java中支持的位运算 2 位运算规则 3 逻辑运算 3.1 与运算&#xff08;&&#xff09; 3.2 或运算&#xff08;|&#xff09; 3.3 异或运算&#xff08;^&#xff09; 3.3 取反运算&#xff08;~&#xff09; 4 位移操作 4.1 左移&#xff08;<<&#…

Steam-V Rising 私人服务器架设教程

一、安装前的准备 一台服务器 拥有公网IP并且做好了端口映射 二、使用SteamCMD安装服务器 1.下载SteamCMD SteamCMD是Steam专用的命令行式客户端程序&#xff0c;所有的安装方式可以参照&#xff1a;https://developer.valvesoftware.com/wiki/SteamCMD 或者在其他站点自行…

yum、yumdownloader学习

yum命令 https://blog.csdn.net/Netfilter007/article/details/103873293 yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器。 常用命令 显示&#xff1a;yum list xxx 安装&#xff1a;yum install xxx 升级&#xff1a;yum update xxx 删除&#xff1a;yum remov…

JAVA开发与运维(web生产环境部署)

web生产环境部署&#xff0c;往往是分布式&#xff0c;和开发环境或者测试环境我们一般使用单机不同。 一、部署内容 1、后端服务 2、后台管理系统vue 3、小程序 二、所需要服务器 5台前端服务器 8台后端服务 三、所需要的第三方组件 redismysqlclbOSSCDNWAFRocketMQ…

mac 安装mongodb 无法打开 mongod 无法验证开发者

https://www.mongodb.com/try/download/community 一、下载解压 下载的tgz包&#xff0c;解压到本地 /usr/local 目录下 二、编辑.bash_profile 文件 终端输入命令打开并编辑 .bash_profile 文件 open .bash_profile .bash_profile文件最下面新增一行mongodb相关配置&#x…

leetcode142_环形链表 II

文章目录 题目详情分析Java完整代码 题目详情 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给…

【5天打卡】学习Lodash的第四天——安全漏洞学习

安全漏洞的问题一直是大家关心的问题&#xff0c;仿佛是巧合&#xff0c;在云视频会议服务提供商 Zoom 刚刚被爆出存在”零日漏洞“威胁 Mac 用户隐私和信息安全的同时&#xff0c;开发者熟知的 npm 库 Lodash 也被爆出存在高严重性安全漏洞——”原型污染“漏洞&#xff0c;该…

全网最新版ChatGLM-6B开源模型环境详细部署及安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型

目录 前言前期准备电脑要求安装anaconda安装相应版本的CUDA配置ChatGLM-6B Conda环境安装pytorch ChatGLM-6B最新版模型环境部署及安装源码下载模型下载相关库安装运行web演示作为API部署 参考资料其它资料下载 前言 ChatGPT的爆火让许多公司和个人都想要开发自己的大型语言模…

多模态之clip

论文&#xff1a;Learning Transferable Visual Models From Natural Language Supervision Github&#xff1a;https://github.com/OpenAI/CLIP OpenAI出品 论文通过网络爬取4亿(image, text)对&#xff0c;使用对比学习的方法训练得到clip&#xff08;Contrastive Languag…

golang 输出固定位数的整数

需求&#xff1a;将0输出为000,99输出为099 c# Console.WriteLine(0.ToString("000")); Console.WriteLine(99.ToString("000"));go fmt.Printf("%03d", 0) fmt.Printf("%03d", 99)运行效果&#xff1a;

深入浅出Java中参数传递的原理

前言 今天&#xff0c;想和大家聊聊关于java中的参数传递的原理&#xff0c;参数的传递有两种&#xff0c;值传递和引用传递。 值传递&#xff1a;是指在调用函数时将实际参数复制一份传递到函数中&#xff0c;这样在函数中如果对参数进行修改&#xff0c;将不会影响到实际参…

windows系统 vmware17安装ubuntu server 22.04.2

vmware17 创建虚拟机 新建虚拟机 选择镜像文件&#xff1a;我这个镜像文件是需要联网才能安装的 设置虚拟机名称&#xff0c;设置存储路径 根据用户实际使用情况设置合适的大小&#xff1a;比如我是用来安装wvp平台的&#xff0c;20g太小&#xff0c;导致安装出现问题。 最…

scratch猫猫的儿童节 中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析2023年3月

目录 scratch猫猫的儿童节 一、题目要求 1、准备工作 2、功能实现 二、案例分析