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

基于Qt的app开发第六天

写在前面

        博主是一个大一下的计科生,现在正在做C++面向对象程序设计的课程设计,具体功能可以看本专栏的第一篇博客。

        目前的进度是:配好MySQL驱动->设计完界面->实现各个界面的切换

        这一篇博主要初步实现待办板块的功能,即新建和修改

板块功能分析

(1)预期功能

 这个板块博主的预期是:点新建,然后就弹到第二页界面,在第二个界面输入内容之后,点应用就可以保存这些,然后在第一个界面就出现了这个新建的任务,依次类推可以设置很多个这样的任务,然后等界面占满可以用鼠标滚轮上下滚动。点击修改进入第二个界面,然后修改了内容之后第一个界面会对应改变

像里边的按优先级或分类或开始时间排序、提醒功能后续再做

(2)项目难点

1.每次新建任务块都要新建控件吗?那控件需要开多少个才算够?

2.鼠标滚轮滑屏怎么实现?

3.怎么实现每一次修改或新建都对应正确的任务块?

这是博主目前面临的难点,因为我还没学这部分知识

(3)难点解决

受了某位学长的指点,我最后决定使用TableView来解决这个问题。我只能说,做项目最怕的就是你不知道你自己不知道。很多东西其实又方便又好用,但是你根本不知道它的存在,所以就会走弯路

为什么要用TableView呢?因为TableView会自动生成滚轮,而且实现对应也更简单,还不需要再新建控件,只要加一行数据就行,这样的话就只有新建或修改与正确的任务块对应是一个困难了

来说一下博主的天才思路:

当点击新建按钮时,用户输入内容,点击应用后这些内容传到shiftTaskList中,然后这些内容再从shiftTaskList传到tableView中,清空shiftTaskList;当选中一行数据,再点击修改时,通过索引判断选中的行数,然后把tableView里这一行的数据传进shiftTaskList中,然后这些内容通过shiftTaskList传到第二个界面中,用户在这里修改之后点击应用,被修改的数据再传回shiftTaskList里,然后再传回对应的tableView里

这个思路是我想了很久突然一下悟到的,感觉自己特别天才,因为这个真正是博主依靠自己想到的实现思路

(4)实现步骤

在Task里声明一个QList类成员变量,这个成员变量的作用是中介——>把原来的控件删了,把修改按钮移到最下边——>添加TableView控件,并添加表头——>建立表格与新建按钮的联系,这个是通过QList实现的——>将新建界面的内容传回表格里,这个也是通过QList实现的——>设置修改与每一行的对应,同样是通过QList实现——>将表格里的内容传到修改界面里——>将修改界面的内容传回表格里

功能实现

(1)修改控件

关于控件,看过我这个专栏之前的博客就知道它刚开始不是这样的

这个界面的控件博主改了至少三四遍,最后定下了这个版本。程序员一定是碰壁最多的行业

还要在这里实现cmobo box控件的显示,优先级提供P1-P7,提醒时间提供三天前、一天前、一小时前、十分钟前

在设计里右键控件,然后添加即可

(2)在代码里添加TableView

#include <QTableView>
#include <QStandardItemModel>

先包含必要的头文件

//这个函数的作用是获取并初始化TableView控件
void Task::GettaskShowTableView()
{//获取界面中的表格对象QTableView *taskShow = ui->taskShowTableView;//设置taskShowTableView的表头model->setColumnCount(6);model->setHorizontalHeaderLabels({"任务名", "开始时间","结束时间", "优先级", "分类", "提醒时间"});taskShow->setModel(model);
}

这个代码的作用是设置表头

(3)新建QList成员变量

QList<QString> shiftTaskList;

在私有成员部分声明QList类成员变量,这个变量的作用是中介

(4)实现新建功能

实现思路:

        因为应用按钮的槽函数是包括修改和新建的,所以根本不知道点击应用时处理的是修改还是新建,要设置一个判断变量,调用新建按钮时这个变量赋值为1,调用修改按钮时这个变量赋值为2,然后就可以用if判断一下按下的是哪个按钮进而处理了。

        新建功能在保存函数里实现,先通过变量捕获界面的文本框的文本,然后把这些变量存进QString型变量中,再把这些变量存进tableView里

void Task::on_task_applyButton_clicked()
{ui->stackedWidget->setCurrentIndex(0);if(addOrRevise==1){//这几行代码的作用是获取第二个界面输入框里的文本QString name=ui->taskNameInput->text();QString startTime=ui->taskdecide_startTimeInput->text();QString endTime=ui->taskdecide_endTimeInput->text();QString category=ui->categoryInput->text();QString priority=ui->priorityChoice->currentText();QString remindTime=ui->remindTimeChoice->currentText();//这几行代码的作用是向中介数组添加数据shiftTaskList.append(name);shiftTaskList.append(startTime);shiftTaskList.append(endTime);shiftTaskList.append(category);shiftTaskList.append(priority);shiftTaskList.append(remindTime);//这几行代码的作用是向tableView里添加一行int row = model->rowCount();model->insertRow(row);for (int col = 0; col < 6; col++){QStandardItem *item = new QStandardItem(shiftTaskList.at(col));model->setItem(row, col, item);}//这句代码的作用是清空这个数组,方便下次使用shiftTaskList.clear();}}

解释见注释,都是固定套库函数。这里只解释一下连接tableView部分:

先获取当前行数,以免把已有的数据给替换掉;然后在要插入的这一行每一列都创造一个模型对象,它会自动调用它写好的析构函数,不需要我们去释放,然后加进去内容就可以了

在这里补充一下:一定要把ui里的内容重新置空,否则下次点开还是那个内容

(5)实现修改功能

实现思路:这个的难度要比新建再大一点,因为它还要先获取选中的索引再传到第二个界面里

实现步骤:先给tableView设置一个行选择模式,然后用库函数选中这一行,把这一行的数据存进QList类的成员变量里,然后在应用按钮的槽函数的另一个判断里把这些数据传进第二个界面里,在第二个界面里改完再取出来,接着放进tableView被选中的那一行

这里函数内容写的地方也很重要,要搞清楚这个功能的运行顺序:先选中对应行,再点修改,再点应用。

所以设置选择模式并获取行号应该放在所有东西的最前边,向第二个界面传数据的操作应该放在修改按钮的槽函数里

修改按钮的槽函数:

//这个函数的作用是修改已经存在的任务
void Task::on_reviseButton_clicked()
{//这段代码的作用是将表格中被选中的行的内容依次存进中介数组if (currentRow != -1){for (int col = 0; col < 6; col++){QModelIndex index = model->index(currentRow, col);QVariant data = model->data(index);shiftTaskList.append(data.toString());}}//这段代码的作用是在界面中设置中介数组中的内容ui->taskNameInput->setText(shiftTaskList[0]);ui->taskdecide_startTimeInput->setText(shiftTaskList[1]);ui->taskdecide_endTimeInput->setText(shiftTaskList[2]);ui->categoryInput->setText(shiftTaskList[3]);ui->stackedWidget->setCurrentIndex(1);
}

表格的点击槽函数:

void Task::on_taskShowTableView_clicked(const QModelIndex &index)
{currentRow = index.row();addOrRevise = 2;
}

保存函数的修改模式:

else if(addOrRevise==2){//这段代码的作用是获取当前界面的输入框的内容QString name=ui->taskNameInput->text();QString startTime=ui->taskdecide_startTimeInput->text();QString endTime=ui->taskdecide_endTimeInput->text();QString category=ui->categoryInput->text();QString priority=ui->priorityChoice->currentText();QString remindTime=ui->remindTimeChoice->currentText();//这段代码的作用是把捕获到的内容再存进中介数组中shiftTaskList.append(name);shiftTaskList.append(startTime);shiftTaskList.append(endTime);shiftTaskList.append(category);shiftTaskList.append(priority);shiftTaskList.append(remindTime);//这个循环的作用是把中介数组的内容传进选中的行中for (int col = 0; col < 6; col++){QStandardItem *item = new QStandardItem(shiftTaskList.at(col));model->setItem(currentRow, col, item);}//清空中介数组方便下次使用shiftTaskList.clear();//将界面置空方便下次使用ui->taskNameInput->setText("");ui->taskdecide_startTimeInput->setText("");ui->taskdecide_endTimeInput->setText("");ui->categoryInput->setText("");//将选择模式置空,防止干扰下次使用addOrRevise=0;}

注意事项

博主在完成这个项目的过程中其实并没有博客体现的这么顺利,不说碰的壁了,就说面对的bug吧

这个选择模式变量在使用完一定要置空,要不然后续可能会产生干扰;中介数组、第二个界面同理

修改的逻辑顺序要搞清楚,博主最开始全部写在了第二个界面的应用按钮,那怎么能行呢?对吧,因为要在第二个界面展示前就把文本框内容设置好

其他的可能出错的倒是没了,这个思路搞清楚还是很容易实现的

还要注意:做到现在并没有实现存储,也就是说每次打开项目先前新建的任务都会消失

因为存储这部分不是博主做,博主还没学数据库,是带博主的学长负责服务器的数据库存储

写在最后

这个项目单单是这个环节,我就卡了一个星期。因为我很多东西都不知道,后来就走了弯路,走了弯路发现实现不了,然后就去找其他方法。

最后这个版本可能不是最好的实现方式,但是这已经是我寻求各方资料+自己沉淀的结果了,就目前我的水平来说,这个已经是巅峰

尽管这个项目只做了冰山一角,但是我的成长已经非常大了。可以说这是博主正经做的第一个项目,虽然它规模不大,技术栈也很窄,但是我确确实实从里边学到了很多。

计算机就是三分学七分练,我现在已经深刻地理解了这句话。今天下午博主做了五个小时,晚上做了两个半小时,最终做到了这一步,实现了我认可的“从无到有”。现在回头看,这个实现其实并不困难,很好理解,但是博主是从什么都不知道到独立实现这个功能的。我真正实现了从无到有的跨越,心中的高兴是难以言表的。

同时博主对Qt的理解和熟练度也提升了很多,这是光学不练永远做不到的,今后博主也会积极做项目,项目做的越多,技术才能越来越强

相关文章:

基于Qt的app开发第六天

写在前面 博主是一个大一下的计科生&#xff0c;现在正在做C面向对象程序设计的课程设计&#xff0c;具体功能可以看本专栏的第一篇博客。 目前的进度是&#xff1a;配好MySQL驱动->设计完界面->实现各个界面的切换 这一篇博主要初步实现待办板块的功能&#xff0c;即新建…...

剑指大规模 AI 可观测,阿里云 Prometheus 2.0 应运而生

作者&#xff1a;曾庆国&#xff08;悦达&#xff09; Prometheus 大家应该非常熟悉&#xff0c;正文开始前&#xff0c;让我们一起来回顾开源 Prometheus 项目的发展史。Prometheus 最初由 SoundCloud 的工程师 Bjrn Rabehl 和 Julius Volz 于 2012 年开发。当时&#xff0c;…...

阿里云2核2g安装nexus

阿里云2核2g安装nexus # 安装 JDK 1.8 sudo yum install -y java-1.8.0-openjdk-devel# 验证安装 java -version创建运行用户 cd /opt sudo wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz sudo tar -xzf latest-unix.tar.gz sudo mv nexus-3* nexussudo us…...

eFish-SBC-RK3576工控板USB HOST接口USB3.0测试操作指南

本小节特指丝印号为J8的USB HOST接口&#xff0c;本开发板只有两个USB3.0接口&#xff0c;无USB2.0 这里接U盘测试。 在不接入任何USB外设的情况下&#xff0c;先查看/dev目录下是否存在/dev/sd*设备&#xff0c;执行命令&#xff1a; $ ls /dev/sd* 如下图所示&#xff1a; …...

嵌入式软件学习指南:从入门到进阶

嵌入式软件是物联网&#xff08;IoT&#xff09;、汽车电子、智能家居等领域的核心技术之一。它涉及硬件与软件的紧密结合&#xff0c;要求开发者不仅会写代码&#xff0c;还要理解底层硬件的工作原理。本文将带你系统了解嵌入式软件的学习路径、核心知识体系及实用资源推荐。 …...

【论文阅读】Adversarial Training Towards Robust Multimedia Recommender System

Adversarial Training Towards Robust Multimedia Recommender System 题目翻译&#xff1a;面向鲁棒多媒体推荐系统的对抗训练 论文链接&#xff1a;点这里 标签&#xff1a;多媒体推荐、对抗训练、推荐系统鲁棒性 摘要 随着多媒体内容在网络上的普及&#xff0c;迫切需要开…...

转换算子和行动算子的区别

转换算子会从一个已经存在的数据集 (RDD)中生成一个新的数据集 (RDD),比如map就是一个转换算子&#xff0c;它通过映射关系从一个RDD生成了一个新的RDD。 行动算子 (actions): 行动算子在进行数据集计算后会给driver程序返回一个值。 转换算子和行动算子最大的区别&#xff1…...

Selenium的driver.get_url 和 手动输入网址, 并点击的操作,有什么不同?

我在搞爬取的时候&#xff0c;发现有些网站直接用driver.get(url) 跳转到目标特定的网址的时候&#xff0c;会被强制跳转到其他的网址上&#xff0c;但是如果是自己手动&#xff0c;在网址栏那里输入网址&#xff0c;并点回车&#xff0c;却能完成跳转。 这是在使用 Selenium …...

【强化学习】强化学习算法 - 多臂老虎机问题

1、环境/问题介绍 概述&#xff1a;多臂老虎机问题是指&#xff1a;智能体在有限的试验回合 &#x1d447; 内&#xff0c;从 &#x1d43e; 台具有未知奖赏分布的“老虎机”中反复选择一个臂&#xff08;即拉杆&#xff09;&#xff0c;每次拉杆后获得随机奖励&#xff0c;目…...

Spring MVC Controller 方法的返回类型有哪些?

Spring MVC Controller 方法的返回类型非常灵活&#xff0c;可以根据不同的需求返回多种类型的值。Spring MVC 会根据返回值的类型和相关的注解来决定如何处理响应。 以下是一些常见的 Controller 方法返回类型&#xff1a; String: 最常见的类型之一&#xff0c;用于返回逻辑…...

Diamond iO:实用 iO 的第一缕曙光

1. 引言 当前以太坊基金会PSE的Machina iO团队宣布&#xff0c;其已经成功实现了 Diamond iO: A Straightforward Construction of Indistinguishability Obfuscation from Lattices —— 其在2025年2月提出的、结构简单的不可区分混淆&#xff08;iO&#xff09;构造&#xf…...

Spring MVC中跨域问题处理

在Spring MVC中处理跨域问题可以通过以下几种方式实现&#xff0c;确保前后端能够正常通信&#xff1a; 方法一&#xff1a;使用 CrossOrigin 注解 适用于局部控制跨域配置&#xff0c;直接在Controller或方法上添加注解。 示例代码&#xff1a; RestController CrossOrigin…...

Python爬虫(20)Python爬虫数据存储技巧:二进制格式(Pickle/Parquet)性能优化实战

目录 背景介绍一、二进制存储的核心优势二、Python Pickle&#xff1a;轻量级对象序列化1. 基本介绍2. 代码示例3. 性能与局限性 三、Apache Parquet&#xff1a;列式存储的工业级方案1. 基本介绍2. 代码示例&#xff08;使用PyArrow库&#xff09;3. 核心优势 四、性能对比与选…...

MCP系列(一)什么是MCP?

一、MCP 是什么&#xff1a;从 USB-C 到 AI 的「万能接口」哲学 MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09; 是Anthropic于2024年11月推出的AI跨系统交互标准&#xff0c;专为解决LLM&#xff08;大语言模型&#xff09;的「数字失语症」—…...

使用Java NIO 实现一个socket通信框架

使用Java NIO(非阻塞I/O)实现一个Socket通信框架,可以让你构建高性能的网络应用。NIO提供了Channel、Buffer和Selector等核心组件,支持非阻塞模式下的网络编程。下面是一个简单的例子,展示了如何使用Java NIO创建一个基本的服务器端和客户端进行Socket通信。 1.服务器端 …...

Web前端技术栈:从入门到进阶都需要学什么内容

概述 Web前端技术栈&#xff1a;从入门到进阶都需要学什么内容。 1. jQuery&#xff1a;经典高效的DOM操作利器 作为早期前端开发的“瑞士军刀”&#xff0c;jQuery通过简洁的语法和链式调用大幅简化了DOM操作与事件处理。其核心模块如选择器引擎、动画效果和Ajax交互至今仍值…...

Kepware 连接Modbus TCP/IP

Modbus TCP modbus tcp 是modbus协议的一个变种&#xff0c;基于TCP/IP协议栈在以太网上进行通信。Modbus TCP采用客户端-服务器&#xff08;Master-Slave&#xff09;的通信模型。客户端发起请求&#xff0c;服务器响应请求。一个网络中可以有多个客户端和服务器&#xff0c;…...

PyCharm连接WSL2搭建的Python开发环境

目录 一、开启WSL2服务 二、安装Ubuntu 三、安装Anaconda 四、构建Tensorflow_gpu环境 五、PyCharm连接到WSL2环境 使用 PyCharm 连接 WSL2 搭建 Python 开发环境的主要目的是结合 Windows 的易用性和 Linux 的开发优势&#xff0c;提升开发效率和体验。以下是具体原因和优…...

JVM中类加载过程是什么?

引言 在Java程序运行过程中&#xff0c;类的加载是至关重要的环节&#xff0c;它直接关系到程序的执行效率和安全性。类加载不仅仅是简单地将.class文件读取到内存中&#xff0c;而是经历了加载、连接&#xff08;包含验证、准备和解析&#xff09;以及初始化等多个复杂步骤&a…...

JVM中对象的存储

引言 在 Java 虚拟机中&#xff0c;对象的内存布局是一个非常基础且重要的概念。每个 Java 对象在内存中都由三个主要部分构成&#xff1a;对象头&#xff08;Header&#xff09;、实例数据&#xff08;Instance Data&#xff09;和对齐填充&#xff08;Padding&#xff09;。…...

精益数据分析(48/126):UGC商业模式的指标剖析与运营策略

精益数据分析&#xff08;48/126&#xff09;&#xff1a;UGC商业模式的指标剖析与运营策略 在创业和数据分析的学习之旅中&#xff0c;探索不同商业模式的运营奥秘是我们不断前行的动力。今天&#xff0c;依旧怀揣着和大家共同进步的期望&#xff0c;深入研读《精益数据分析》…...

SpringBoot优雅参数检查

SpringBoot优雅参数检查 在 Spring Boot 中&#xff0c;参数验证通常基于 JSR-380&#xff08;Bean Validation 2.0&#xff09;规范&#xff0c;结合 javax.validation&#xff08;或 jakarta.validation&#xff09;和 Hibernate Validator 实现。以下是常用的验证注解及其意…...

(九)PMSM驱动控制学习---分流电阻采样及重构

在电机控制当中&#xff0c;无论是我们的控制或者电机工作情况的检测&#xff0c;都十分依赖于电机三相电流的值&#xff0c; 所以相电流采样再在FOC控制中是一个特别关键的环节。 在前几篇中我们介绍了逆变电路的相关内容&#xff0c;所以在此基础上我们接着说道电流采样。目前…...

医疗人工智能大模型中的关键能力:【中期训练】mid-training

引言 医疗人工智能(AI)领域的快速发展正在重塑医疗保健的未来。从辅助诊断到个性化治疗方案,AI技术已经显示出改变医疗实践的巨大潜力。然而,在将AI技术应用于医疗场景时,我们面临着独特的挑战。医疗数据的复杂性、决策的高风险性以及对可解释性的严格要求,都使得医疗AI…...

Unity垃圾回收(GC)

1.GC的作用&#xff1a;定期释放不再使用的内存空间。 注&#xff1a;C不支持GC&#xff0c;需要手动管理内存&#xff0c;使用new&#xff08;&#xff09;申请内存空间&#xff0c;使用完后通过delete&#xff08;&#xff09;释放掉&#xff0c;但可能出现忘记释放或者指针…...

什么是跨域,如何解决跨域问题

什么是跨域&#xff0c;如何解决跨域问题 一、什么是跨域 跨域是指浏览器出于安全考虑&#xff0c;限制网页脚本访问不同源&#xff08;协议、域名、端口&#xff09;的资源。两个URL的协议、域名或端口任意一个不相同时&#xff0c;就属于不同源&#xff0c;浏览器会阻止脚本…...

JVM的双亲委派模型

引言 Java类加载机制中的双亲委派模型通过层层委托保证了核心类加载器与应用类加载器之间的职责分离和加载安全性&#xff0c;但其单向的委托关系也带来了一些局限性。尤其是在核心类库需要访问或实例化由应用类加载器加载的类时&#xff0c;双亲委派模型无法满足需求&#xf…...

ARCGIS PRO DSK 选择坐标系控件(CoordinateSystemsControl )的调用

在WPF窗体上使用 xml&#xff1a;加入空间命名引用 xmlns:mapping"clr-namespace:ArcGIS.Desktop.Mapping.Controls;assemblyArcGIS.Desktop.Mapping" 在控件区域加入&#xff1a; <mapping:CoordinateSystemsControl x:Name"CoordinateSystemsControl&q…...

一个电平转换电路导致MCU/FPGA通讯波形失真的原因分析

文章目录 前言一、问题描述二、原因分析三、 仿真分析四、 尝试的解决方案总结前言 一、问题描述 一个电平转换电路,800kHz的通讯速率上不去,波形失真,需要分析具体原因。输出波形如下,1码(占空比75%)低于5V,0码(占空比25%)低于4V。,严重失真。 电平转换电路很简单,M…...

不同OS版本中的同一yum源yum list差异排查思路

问题描述&#xff1a; qemu-guest-agent二进制rpm包的yum仓库源和yum源仓库配置文件path_to_yum_conf&#xff0c; 通过yum list --available -c path_to_yum_conf 查询时&#xff0c;不同的OS版本出现了不同的结果 anolis-8无法识别 centos8可以识别 说明&#xff1a; 1 测试…...

Android Studio开发安卓app 设置开机自启

Android Studio开发安卓app 设置开机自启 AndroidManifest.xml增加配置 增加的配置已标记 AndroidManifest.xml完整配置 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/androi…...

全文索引数据库Elasticsearch底层Lucene

Lucene 全文检索的心&#xff0c;天才的想法。 一个高效的&#xff0c;可扩展的&#xff0c;全文检索库。全部用 Java 实现&#xff0c;无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件&#xff0c;或从网络中抓取文件的过程…...

互联网大厂Java求职面试:分布式系统中向量数据库与AI应用的融合探索

互联网大厂Java求职面试&#xff1a;分布式系统中向量数据库与AI应用的融合探索 面试开场&#xff1a;技术总监与郑薪苦的“较量” 技术总监&#xff08;以下简称T&#xff09;&#xff1a;郑薪苦先生&#xff0c;请简单介绍一下你在分布式系统设计方面的经验。 郑薪苦&…...

游戏引擎学习第262天:绘制多帧性能分析图

回顾并为今天设定阶段 事情开始录制了&#xff0c;大家好&#xff0c;欢迎来到游戏直播节目。我们正在直播完成游戏的开发工作&#xff0c;目前我们正在做性能分析器&#xff0c;它现在已经非常酷了。我们只是在清理一些界面问题&#xff0c;但它能做的事情真的很厉害。我觉得…...

1、RocketMQ 核心架构拆解

1. 为什么要使用消息队列&#xff1f; 消息队列&#xff08;MQ&#xff09;是分布式系统中不可或缺的中间件&#xff0c;主要解决系统间的解耦、异步和削峰填谷问题。 解耦&#xff1a;生产者和消费者通过消息队列通信&#xff0c;彼此无需直接依赖&#xff0c;极大提升系统灵…...

探索 C++ 语言标准演进:从 C++23 到 C++26 的飞跃

引言 C 作为一门历史悠久且广泛应用的编程语言&#xff0c;其每一次标准的演进都备受开发者关注。从早期的 C98 到如今的 C23&#xff0c;再到令人期待的 C26&#xff0c;每一个版本都为开发者带来了新的特性和改进&#xff0c;推动着软件开发的不断进步。本文将深入探讨 C23 …...

ROBOVERSE:面向可扩展和可泛化机器人学习的统一平台、数据集和基准

25年4月来自UC Berkeley、北大、USC、UMich、UIUC、Stanford、CMU、UCLA 和 北京通用 AI 研究院&#xff08;BIGAI&#xff09;的论文“ROBOVERSE: Towards a Unified Platform, Dataset and Benchmark for Scalable and Generalizable Robot Learning”。 数据扩展和标准化评…...

【Bootstrap V4系列】学习入门教程之 组件-轮播(Carousel)高级用法

【Bootstrap V4系列】学习入门教程之 组件-轮播&#xff08;Carousel&#xff09;高级用法 轮播&#xff08;Carousel&#xff09;高级用法2.5 Crossfade &#xff08;淡入淡出&#xff09;2.6 Individual .carousel-item interval &#xff08;单个轮播项目间隔&#xff09;2.…...

LangChain4j简介

LangChain4j 是什么&#xff1f; The goal of LangChain4j is to simplify integrating LLMs into Java applications. LangChain4j 的目标是简化将 LLMs 集成到 Java 应用程序中。 提供如下能力&#xff1a; ● 统一的 API&#xff1a; LLM 提供商&#xff08;如 OpenAI 或 Go…...

Git 撤销已commit但未push的文件

基础知识&#xff1a;HEAD^ 即上个版本, HEAD~2 即上上个版本, 依此类推… 查看commit日志 git log撤销commit&#xff0c;保留git add git reset --soft HEAD^ #【常用于&#xff1a;commit成功&#xff0c;push失败时的代码恢复】保留工作空间改动代码&#xff0c;撤销com…...

OC语言学习——面向对象(下)

一、OC的包装类 OC提供了NSValue、NSNumber来封装C语言基本类型&#xff08;short、int、float等&#xff09;。 在 Objective-C 中&#xff0c;**包装类&#xff08;Wrapper Classes&#xff09;**是用来把基本数据类型&#xff08;如 int、float、char 等&#xff09;“包装…...

SafeDrive:大语言模型实现自动驾驶汽车知识驱动和数据驱动的风险-敏感决策——论文阅读

《SafeDrive: Knowledge- and Data-Driven Risk-Sensitive Decision-Making for Autonomous Vehicles with Large Language Models》2024年12月发表&#xff0c;来自USC、U Wisconsin、U Michigan、清华大学和香港大学的论文。 自动驾驶汽车&#xff08;AV&#xff09;的最新进…...

什么是先验?(CVPR25)Detail-Preserving Latent Diffusion for Stable Shadow Removal论文阅读

文章目录 先验&#xff08;Prior&#xff09;是什么&#xff1f;1. 先验的数学定义2. 先验在深度生成模型中的角色3. 为什么需要先验&#xff1f;4. 先验的常见类型5. 如何选择或构造先验&#xff1f;6. 小结 先验&#xff08;Prior&#xff09;是什么&#xff1f; 在概率统计…...

【论文阅读】Attentive Collaborative Filtering:

Attentive Collaborative Filtering: Multimedia Recommendation with Item- and Component-Level Attention Attentive Collaborative Filtering (ACF)、隐式反馈推荐、注意力机制、贝叶斯个性化排序 标题翻译&#xff1a;注意力协同过滤&#xff1a;基于项目和组件级注意力的…...

如何使用极狐GitLab 软件包仓库功能托管 maven?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 软件包库中的 Maven 包 (BASIC ALL) 在项目的软件包库中发布 Maven 产物。然后&#xff0c;在需要将它们用作依赖项时安装它…...

Notion Windows桌面端快捷键详解

通用导航 这些快捷键帮助用户在 Notion 的界面中快速移动。 打开 Notion&#xff1a;Ctrl T 打开一个新的 Notion 窗口或标签页&#xff0c;方便快速进入工作空间。返回上一页&#xff1a;Ctrl [ 导航回之前查看的页面。前进到下一页&#xff1a;Ctrl ] 跳转到导航历史中的…...

企业智能化第一步:用「Deepseek+自动化」打造企业资源管理的智能中枢

随着Deepseek乃至AI人工智能技术在企业中得到了广泛的关注和使用&#xff0c;多数企业开始了AI探索之旅&#xff0c;迅易科技也不例外&#xff0c;且在不断地实践中强化了AI智能应用创新的强大能力。 为解决企业知识管理碎片化、提高内部工作效率等问题&#xff0c;迅易将目光放…...

GoFly企业版框架升级2.6.6版本说明(框架在2025-05-06发布了)

前端框架升级说明&#xff1a; 1.vue版本升级到^3.5.4 把"vue": "^3.2.40",升级到"vue": "^3.5.4"&#xff0c;新版插件需要时useTemplateRef,所以框架就对齐进行升级。 2.ArcoDesign升级到2.57.0&#xff08;目前最新2025-02-10&a…...

LeapVAD:通过认知感知和 Dual-Process 思维实现自动驾驶飞跃——论文阅读

《LeapVAD: A Leap in Autonomous Driving via Cognitive Perception and Dual-Process Thinking》2025年1月发表&#xff0c;来自浙江大学、上海AI实验室、慕尼黑工大、同济大学和中科大的论文。 尽管自动驾驶技术取得了显著进步&#xff0c;但由于推理能力有限&#xff0c;数…...

ps信息显示不全

linux执行ps是默认宽度是受限制的&#xff0c;例如&#xff1a; ps -aux 显示 遇到这种情况&#xff0c;如果显示的信息不是很长可以添加一个w参数来放宽显示宽度 ps -auxw 显示 再添加一个w可以接触宽度限制&#xff0c;有多长就显示多长 ps -auxww 显示...