当前位置: 首页 > news >正文

qt day 3

1.完成自定义的记事本文件的保存功能

-------------------------------------------------------------------------
widget.cpp
-------------------------------------------------------------------------
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}
Widget::~Widget()
{delete ui;
}
//字体按钮对应的槽函数
void Widget::on_fontbtn_clicked()
{//调用QFontDialog中的成员函数getFont函数来获取系统提供的字体对话框bool ok;    //接收用户是否选择字体QFont font = QFontDialog::getFont(&ok,QFont("隶书",14,14,0),this,"选择字体");if(ok == 1) //选中了字体{//将字体设置到文本上//ui->textEdit->setFont(font);//将字体设置到选中文本上ui->textEdit->setCurrentFont(font);}else        //未选中字体{QMessageBox::information(this,"提示","未选择字体");}
}
void Widget::on_colbtn_clicked()
{QColor col = QColorDialog::getColor(QColor("black"),this,"颜色选择");if(col.isValid())//颜色合法{//ui->textEdit->setTextColor(col);ui->textEdit->setTextBackgroundColor(col);}else    //颜色不合法{QMessageBox::information(this,"提示","颜色不合法");}
}
void Widget::on_openbtn_clicked()
{QString fname = QFileDialog::getOpenFileName(this,"选择文件","./","Image File(*.png *.jpg *.bmp);;Text File(*.txt);;All(*.*)");if(fname.isNull()){QMessageBox::information(this,"文件选择","取消选择");}else{QFile rf(fname);if(!rf.exists()){return;}if(!rf.open(QFile::ReadWrite)){return;}QByteArray msg = rf.readAll();ui->textEdit->setText(msg);rf.close();}
}
void Widget::on_savebtn_clicked()
{QString fname = QFileDialog::getSaveFileName(this,"保存","./","Text File(*.txt);;Image File(*.jpg *.png *.bmp);;All File(*.*)");if(fname.isNull()){QMessageBox::information(this,"文件选择","取消选择");}else{QFile wf(fname);if(!wf.open(QFile::WriteOnly)){return;}QString buf;buf = ui->textEdit->toPlainText();qDebug() << buf;wf.write(buf.toUtf8());}
}

2.使用键盘事件实现图片的上下左右移动

-------------------------------------------------------------------------
widget.cpp
-------------------------------------------------------------------------
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}
Widget::~Widget()
{delete ui;
}
//键盘按下事件处理函数
void Widget::keyPressEvent(QKeyEvent *event)
{qDebug() << "键盘按下" << event->text() << "键值为 : " << event->key();switch(event->key()){case 'W':ui->label->move(ui->label->x(),ui->label->y()-1);if(ui->label->y() <= 0-ui->label->height()){ui->label->move(ui->label->x(),this->height());}break;case 'S':ui->label->move(ui->label->x(),ui->label->y()+1);if(ui->label->y() >= this->height()){ui->label->move(ui->label->x(),0-ui->label->height());}break;case 'A':ui->label->move(ui->label->x()-1,ui->label->y());if(ui->label->x() <= 0-ui->label->width()){ui->label->move(this->width(),ui->label->y());}break;case 'D':ui->label->move(ui->label->x()+1,ui->label->y());if(ui->label->x() >= this->width()){ui->label->move(0-ui->label->width(),ui->label->y());}}
}

相关文章:

qt day 3

1.完成自定义的记事本文件的保存功能 ------------------------------------------------------------------------- widget.cpp ------------------------------------------------------------------------- #include "widget.h" #include "ui_widget.h"…...

SpotBugs检查java代码:在整数上进行没有起任何实际作用的位操作(INT_VACUOUS_BIT_OPERATION)

https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#int-vacuous-bit-mask-operation-on-integer-value-int-vacuous-bit-operation 在整数上进行无用的与、异或操作&#xff0c;实质上没有做任何有用的工作。 例如&#xff1a;v & 0xffffffff 再例如&…...

javaWeb录入数据异常,mysql显示错误

由于项目,需要输入 电脑的mac地址 ,在web页面中进行录入,但是某个同事录入一直有问题,数据查询时使用 in 或者 都查询不到 通过like %% 可以查询到,非常奇怪,请广大网友不吝赐教. 通过 toHex 进行显示发现 数据开头多了 E2808E...

Vue + Element UI 前端篇(十):动态加载菜单

Vue Element UI 实现权限管理系统 前端篇&#xff08;十&#xff09;&#xff1a;动态加载菜单 动态加载菜单 之前我们的导航树都是写死在页面里的&#xff0c;而实际应用中是需要从后台服务器获取菜单数据之后动态生成的。 我们在这里就用上一篇准备好的数据格式Mock出模…...

图的应用(最小生成树,最短路径,有向无环图)

目录 一.最小生成树 1.生成树 2.无向图的生成树 3.最小生成树算法 二.最短路径 1.单源最短路径---Dijkstra&#xff08;迪杰斯特拉&#xff09;算法 2.所有顶点间的最短路径---Floyd&#xff08;弗洛伊德&#xff09;算法 三.有向无环图的应用 1.AOV网&#xff08;拓扑…...

python正则表达式笔记2

由 \ 和一个字符组成的特殊序列在以下列出。 如果普通字符不是ASCII数位或者ASCII字母&#xff0c;那么正则样式将匹配第二个字符。比如&#xff0c;\$ 匹配字符 $. \number 匹配数字代表的组合。每个括号是一个组合&#xff0c;组合从1开始编号。 比如 (.) \1 匹配 the the 或…...

matplotlib 的默认字体和默认字体系列

matplotlib 的默认字体和默认字体系列 查看默认字体和默认字体系列查看默认字体系列下包含的字体查看 plt.rcParams 设置的所有参数查看所有支持的字体格式设置默认字体方法1&#xff1a;方法2 今天给大家介绍一下 matplotlib 包中的默认字体以及默认字体系列。 查看默认字体和…...

STMCUBEMX_IIC_DMA_AT24C64读取和写入

STMCUBEMX_IIC_DMA_AT24C64读取和写入 说明&#xff1a; 1、此例程只是从硬件IIC升级到DMA读写&#xff0c;因为暂时存储的掉电不丢失数据不多&#xff0c;一页就可以够用&#xff0c;不用担心跨页读写的问题 2、使用DMA后&#xff0c;程序确实是变快了&#xff0c;但是也要注意…...

wsl2相关问题

磁盘空间 wsl 删除相关文件后&#xff0c;如删除docker 无用的容器和镜像&#xff0c;windows上磁盘仍然无法自动回收空间 &#xff08;参考&#xff1a;[microsoft/WSL](https://github.com/microsoft/WSL/issues/4699#issuecomment-627133168)&#xff09; # 如清除无用do…...

使用idea时,光标变成了不能按空格键,只能修改的vim格式,怎么切换回正常光标

情况1 你可能不小心启用了 IntelliJ IDEA 中的 Vim 插件。你可以尝试以下步骤来禁用它&#xff1a; 在 IntelliJ IDEA 中&#xff0c;选择 "File" -> "Settings" &#xff08;如果你在 macOS 上&#xff0c;选择 "IntelliJ IDEA" -> &quo…...

vue+antd——实现table表格的打印——分页换行,每页都有表头——基础积累

这里写目录标题 场景效果图功能实现1&#xff1a;html代码功能实现2&#xff1a;css样式功能实现3&#xff1a;js代码补充内容page-break-inside 属性page-break-after属性page-break-before 属性 场景 最近在写后台管理系统时&#xff0c;遇到一个需求&#xff0c;就是要实现…...

linux C MD5计算

#include <stdio.h> #include <string.h> #include <openssl/md5.h>int main() {char str[] "Hello, world!"; // 需要计算MD5哈希值的字符串unsigned char digest[MD5_DIGEST_LENGTH]; // 存储MD5哈希值的数组MD5((unsigned char*)&str, str…...

vue3学习源码笔记(小白入门系列)------ 组件更新流程

目录 说明例子processComponentcomponentUpdateFnupdateComponentupdateComponentPreRender 总结 说明 由于响应式相关内容太多&#xff0c;决定先接着上文组件挂载后&#xff0c;继续分析组件后续更新流程&#xff0c;先不分析组件是如何分析的。 例子 将这个 用例 使用 vi…...

数学建模B多波束测线问题B

数学建模多波束测线问题 1.问题重述&#xff1a; 单波束测深是一种利用声波在水中传播的技术来测量水深的方法。它通过测量从船上发送声波到声波返回所用的时间来计算水深。然而&#xff0c;由于它是在单一点上连续测量的&#xff0c;因此数据在航迹上非常密集&#xff0c;但…...

Pytest 框架执行用例流程浅谈

背景&#xff1a; 根据以下简单的代码示例&#xff0c;我们将从源码的角度分析其中的关键加载执行步骤&#xff0c;对pytest整体流程架构有个初步学习。 代码示例&#xff1a; import pytest def test_add(): assert 1 1 2 def test_sub(): assert 2 - 1 1 通过 pytes…...

C#__资源访问冲突和死锁问题

/// 线程的资源访问冲突&#xff1a;多个线程同时申请一个资源&#xff0c;造成读写错乱。 /// 解决方案&#xff1a;上锁&#xff0c;lock{执行的程序段}:同一时刻&#xff0c;只允许一个线程访问该程序段。 /// 死锁问题&#xff1a; /// 程序中的锁过多&#xf…...

机器学习——Logistic Regression

0、前言&#xff1a; Logistic回归是解决分类问题的一种重要的机器学习算法模型 1、基本原理&#xff1a; Logistic Regression 首先是针对二分类任务提出的一种分类方法如果将概率看成一个数值属性&#xff0c;则二元分类问题的概率预测就可以转化为一个回归问题。这种思路最…...

创建husky规范前端项目

创建husky规范前端项目 .husky文件是一个配置文件&#xff0c;用于配置Git钩子。Git钩子是在Git操作时触发的脚本&#xff0c;可以用于自动化一些任务&#xff0c;比如代码格式化、代码检查、测试等。.husky文件可以指定在Git的不同操作&#xff08;如commit、push等&#xff…...

深浅拷贝与赋值

数据类型 数据类型 在JavaScript中&#xff0c;数据类型有两大类。一类是基本数据类型&#xff0c;一类是引用数据类型。 基本数据类型有六种&#xff1a;number、string、boolean、null、undefined、symbol。 基本数据类型存放在栈中。存放在栈中的数据具有数据大小确定&a…...

bert ranking pairwise demo

下面是用bert 训练pairwise rank 的 demo import torch from torch.utils.data import DataLoader, Dataset from transformers import BertModel, BertTokenizer from sklearn.metrics import pairwise_distances_argmin_minclass PairwiseRankingDataset(Dataset):def __ini…...

新手避坑指南:用Altium Designer打开嘉立创PCB文件,这3个设置不改布线全乱

Altium Designer导入嘉立创PCB文件的三大核心设置解析 刚接触硬件设计的新手工程师们&#xff0c;当你们第一次尝试用Altium Designer打开从嘉立创EDA导出的PCB文件时&#xff0c;是否遇到过这样的场景&#xff1a;板框莫名其妙错位、网络连接全部丢失、设计规则一片混乱&#…...

突破方舟生存进化技术壁垒的智能管理工具

突破方舟生存进化技术壁垒的智能管理工具 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher 你是否曾因MOD安装顺序错误导致游戏频繁崩溃&#xff1f;是否在搭建私人服务器时被端口配置弄得晕…...

自适应滤波实战:如何用LMS算法在MATLAB/Simulink中快速搭建一个‘简易版’维纳滤波器?

自适应滤波实战&#xff1a;LMS算法在MATLAB/Simulink中的工程化实现 在信号处理领域&#xff0c;自适应滤波技术因其强大的环境适应能力而备受青睐。想象一下&#xff0c;你正在处理一段被噪声污染的语音信号&#xff0c;或是试图从复杂工业环境中提取有效振动特征——传统固定…...

C++程序发生崩溃闪退后为什么会自动重启?是因为程序中启用了重启管理器,系统感知到程序异常退出后自动重启程序

最近在使用sdkdemo程序测试我们的SDK功能时&#xff0c;发现当我们关闭程序后&#xff08;程序确实关闭了&#xff09;&#xff0c;程序居然又自动启动起来了&#xff01;后来运行Debug版本的sdkdemo&#xff0c;在关闭程序时会弹出报错提示框&#xff1a;估计是程序在退出时产…...

Spring AI 2025实战:从零构建企业级智能问答系统

1. 为什么企业需要智能问答系统&#xff1f; 想象一下这样的场景&#xff1a;新员工入职第一天&#xff0c;面对公司庞杂的知识库手足无措&#xff1b;客服部门每天重复回答相同的基础问题&#xff1b;技术团队在查找内部文档时浪费大量时间。这些都是我亲身经历过的痛点&#…...

剑指offer-58、对称二叉树

题⽬描述 请实现⼀个函数&#xff0c;⽤来判断⼀棵⼆叉树是不是对称的。注意&#xff0c;如果⼀个⼆叉树同此⼆叉树的镜像是同样 的&#xff0c;定义其为对称的。 例如&#xff1a;下⾯这棵⼆叉树是对称的 下⾯这个就不是对称的&#xff1a; 示例1 输⼊&#xff1a;{8,6,6,5…...

网盘下载加速工具LinkSwift:八大主流网盘直链下载解决方案

网盘下载加速工具LinkSwift&#xff1a;八大主流网盘直链下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …...

跨设备追番终极指南:3步配置Kazumi WebDAV数据同步

跨设备追番终极指南&#xff1a;3步配置Kazumi WebDAV数据同步 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕&#xff0c;支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi 还在为手…...

从“认怂”到“被看见”:flomo的产品设计哲学

当大多数笔记软件都在追求“大而全”时&#xff0c;有一款产品选择了一条完全不同的路。它不让你写标题&#xff0c;不支持复杂排版&#xff0c;甚至在官网上大大方方地列出“自己不擅长什么”。它的创始人说&#xff1a;“35岁再创业&#xff0c;我学会了认怂。”它就是flomo&…...

3月31日(AI审批+技术岗位情况+知识获取方法)

如何用 AI 分类器替代人工审批 Claude 每执行一个命令、每改一个文件&#xff0c;都要你点一次“同意”。用户 93% 的操作都会批准。也就是说&#xff0c;这个“安全审批”环节&#xff0c;绝大多数时候只是一个条件反射。 告警疲劳&#xff1a;100 条告警里只有 7 条需要关注…...