
C++
文章平均质量分 69
我喜欢就喜欢
有丰富的产品开发、测试、项目管理、部门管理、项目指导经验
展开
-
Qt TreeWidget 项目高亮与交互指引实现方案
在 Qt 应用程序开发中,经常需要对 QTreeWidget 中的特定项目进行高亮显示并引导用户进行交互操作。本文介绍了一个专门的代理类 HighlightDelegate,它能够实现项目高亮、鼠标操作提示以及自动展开节点等功能。Q_OBJECTpublic:// 定义鼠标操作类型protected:本实现方案提供了一个专业、可靠的 QTreeWidget 交互指引解决方案。通过合理的抽象和封装,既保证了代码的可维护性,又提供了良好的用户体验。原创 2025-04-03 14:52:33 · 696 阅读 · 0 评论 -
自定义多功能输入对话框:基于 Qt 打造灵活交互界面
通过自定义类,我们实现了一个支持多种输入类型的灵活输入对话框。这种方式可以满足复杂的用户交互需求,让应用程序更加友好和实用。你可以根据自己的需求进一步扩展这个类,添加更多类型的输入控件,或者对界面进行美化和优化。希望本文能帮助你在 Qt 开发中更好地处理用户输入。原创 2025-02-05 21:31:27 · 1132 阅读 · 0 评论 -
C++ 实现简单多数法
qstring majorityElementHashTable(const std::vector& grades) 参数改成这个试试。需要注意的是,要确保你的编译环境正确配置了 Qt 相关的库,这样才能顺利编译包含。除了暴力遍历法和哈希表法,还有哪些方法可以实现简单多数法?除了C++,简单多数法还可以用哪些编程语言实现?简单多数法在实际应用中有哪些限制和注意事项?(假设你这里是使用 Qt 框架中的。原创 2025-01-09 17:02:37 · 190 阅读 · 0 评论 -
QChartView 应用详解
此外,坐标轴的灵活设置功能让研究人员能够根据实验需求,精确调整坐标轴的刻度和范围,比如将坐标轴的精度设置到小数点后两位,确保数据展示的准确性,助力科研成果的高效产出。在数据可视化领域,Qt 框架提供了强大的工具,其中 QChartView 便是一个极为重要的组件。从基础图表构建到高级特性运用,再结合实际项目案例可以看出,掌握 QChartView 能极大提升软件的数据呈现能力,无论是桌面应用、移动端应用还是嵌入式设备的界面开发,只要涉及数据可视化需求,它都将是得力助手,助力打造出专业、高效的数据展示界面。原创 2025-01-09 13:50:19 · 798 阅读 · 0 评论 -
QTcpSocket 如何统计在线时长
除了QTcpSocket,还有其他类可以用于统计在线时长吗?示例代码中的connectStartTime是什么类型?如何在断开连接时停止统计在线时长?原创 2025-01-09 13:43:36 · 920 阅读 · 0 评论 -
服务器端QTcpSocket如何判断客户端是否在线
【代码】服务器端QTcpSocket如何判断客户端是否在线。原创 2025-01-07 17:22:42 · 695 阅读 · 0 评论 -
Qt 开发智能客服系统的应答
语音识别:集成如 Google Speech-to-Text 或 PocketSphinx。通过以上方法,可以快速实现一个智能客服应答系统的原型,并根据实际需求进一步完善功能。多语言支持:使用 Qt 的 QLocale 和 tr() 机制支持多语言切换。语音合成:集成如 Azure TTS 或 Pyttsx3。将模型(如 Llama、ChatGLM)部署为本地服务。系统通过网络请求或本地模型生成答案并显示在聊天窗口中。如果部署本地模型,注意硬件资源需求和模型加载速度。选项 2:本地部署 AI 模型。原创 2024-12-31 20:25:49 · 402 阅读 · 0 评论 -
检索增强生成(RAG):大语言模型的创新应用
为解决这一局限性,检索增强生成(Retrieval-Augmented Generation, RAG)技术应运而生,通过结合外部信息检索与生成模型,大幅提升了文本生成的准确性和上下文相关性。RAG的核心思想是将外部数据库作为辅助信息源,将检索到的相关数据与语言模型的生成过程相结合,从而改善生成结果。实时性强:通过检索最新的外部信息,RAG可以生成包含最新数据的文本,突破模型知识的时效性限制。融合复杂性:将检索到的非结构化信息与生成模型高效融合,避免引入噪声,是实现高质量生成的关键。原创 2024-12-31 20:21:08 · 1378 阅读 · 0 评论 -
error MSB4018: “CriticalSection”任务意外失败
解决办法:添加详细的异常处理代码到临界区内,通过try-catch(在支持的编程语言中,比如 C++、C# 等)等结构捕获可能出现的异常,并进行合适的处理,例如记录错误日志、恢复默认状态等,避免异常直接导致任务崩溃。解决办法:梳理项目的模块依赖关系,通过调整项目配置(比如在一些构建工具中指定模块加载顺序)或者修改代码中的初始化逻辑等方式,保证各模块按照正确的顺序进行加载和执行,以支持临界区任务的顺利开展。解决办法:从可靠的备份中恢复相关文件,或者重新创建、复制完整的对应文件到项目目录中,确保项目结构完整。原创 2024-12-26 11:19:40 · 557 阅读 · 0 评论 -
无法将参数 1 从“B88::idx_”转换为“B88::idx_ &”
而如果传递进来的是一个临时对象或者是 const 对象,又或者是像 B88::idx_ 这种本身就不是合适左值引用类型的表达式(比如它可能是一个返回值、临时变量等情况),就无法进行这样的类型转换,从而导致编译器报出 “无法将参数 1 从‘B88::idx_’转换为‘B88::idx_ &’” 这样的错误。在上述代码中,func 函数期望接收 Test 类型的左值引用,但是 createTest 函数返回的是临时对象,不能绑定到非 const 的左值引用参数上,和你遇到的报错本质上是同一类的类型不匹配问题。原创 2024-12-25 13:29:44 · 310 阅读 · 0 评论 -
懒加载策略的关键思路及实现
然后可以通过 displayImage 函数根据指定的影像索引来加载并显示影像,在 displayImage 函数内部,它调用了 imageDataManager 的 loadImageData 函数来实现懒加载影像数据,并将加载好的影像转换为 QGraphicsPixmapItem 添加到图形场景中进行显示,整体展示了如何基于前面的数据管理类来构建一个简单的影像显示功能框架。原创 2024-12-24 13:38:55 · 1045 阅读 · 0 评论 -
基于 Qt C++ 的滚动屏实现
在新闻阅读类应用中,滚动屏大放异彩。上述样式表指令将 QScrollArea 背景渲染为深邃黑色,垂直滚动条则以暗灰色调搭配窄身设计,手柄部分凸显深灰色,不仅契合音乐应用的酷炫风格,更在视觉上引导用户聚焦滚动操作,全方位提升用户沉浸感。综上所述,通过对 Qt C++ 中滚动屏从基础构建、行为定制到应用拓展与界面优化的全方位探索,开发者得以掌握这一关键技术,为各类软件项目注入灵动且高效的滚动屏活力,在数字化浪潮中为用户呈上极致体验。此刻,内容部件已满载待展示的内容,当信息量超出可视范围,滚动需求应运而生。原创 2024-12-22 20:35:21 · 1071 阅读 · 0 评论 -
Qt C++ 下网络通信与文件发送的实现
一旦有新连接到来,便会发出newConnection信号,开发者可连接此信号到自定义槽函数,在槽函数中处理新连接的后续操作,如获取与客户端通信的套接字对象。它不保证数据的顺序和完整性,数据报可能丢失、重复或乱序,但传输效率高,常用于对实时性要求高而对数据准确性要求相对较低的场景,如视频直播、在线游戏中的实时位置更新等。然后循环读取文件内容到缓冲区(这里缓冲区大小设为 4096 字节,可根据实际优化调整),并通过套接字发送,记录已发送字节数,直到整个文件发送完毕,最后关闭文件。若过大,可能耗尽内存资源。原创 2024-12-22 19:29:17 · 1021 阅读 · 0 评论 -
深入理解 C++ 中 std::vector 和 std::set 容器的使用
std::vector 适用于需要频繁进行随机访问和在末尾快速插入删除元素的场景,而 std::set 则更擅长处理需要元素唯一性和有序性的情况,如数据去重和集合运算等。当向向量中添加元素时,如果当前元素个数等于容量,std::vector 会自动重新分配一块更大的内存空间,并将原有的元素复制到新的内存区域,然后再添加新元素。在上述代码中,首先使用 std::set 来标记 instpt 中的元素,然后遍历 ve3,将其中不重复的元素添加到结果向量,并同时标记这些元素。原创 2024-12-20 14:47:12 · 676 阅读 · 0 评论 -
Qt C++ OpenCV实现人脸跟踪
一、概述通过 Qt 和 OpenCV 组合实现人脸跟踪系统,可以将实时视频中的人脸检测和跟踪功能应用于监控、功能识别等场景。OpenCV 提供的前处理和模型装载功能,进一步与 Qt 的繁荣应用程序展示功能相结合,可以极大地提升实时处理效果。二、环境汇总Qt Framework (推荐 Qt 6 版本或高版。原创 2024-12-18 22:18:17 · 598 阅读 · 0 评论 -
使用 QImage 读取、加载 16 位影像并显示
对于 16 位影像(如 TIFF 或 GeoTIFF 文件),QImage 无法直接解析 16 位数据,TIFF 支持依赖于 Qt 的影像格式插件(qgif、qtiff 等),且若 TIFF 文件含 16 位灰度或 RGB 数据,QImage 会将其降位为 8 位加载,要正确处理需借助第三方库(如 OpenCV 或 GDAL)。读取和转换数据:从影像数据缓冲区读取 16 位数据,计算像素值范围,然后将每个像素线性映射到 8 位范围,并设置到 QImage 中。二、QImage 对 16 位影像的支持现状。原创 2024-12-17 11:27:51 · 940 阅读 · 0 评论 -
VS AI 工具的专业技术解析与应用
特别是在 Visual Studio(VS)生态系统中,集成的 AI 工具为 C++ 开发者提供了强大的支持。Visual Studio 中的 AI 工具和第三方插件为 C++ 开发者提供了强大的支持,显著提升了开发效率和代码质量。未来,随着 AI 技术的进一步发展,这些工具还将带来更多创新的功能,助力开发者应对复杂的软件开发挑战。深度代码 是一款国产 AI 驱动的代码质量分析工具,可以通过静态代码检查快速发现潜在的安全问题和代码缺陷。可直接集成到 Visual Studio,提供便捷的界面和快捷键支持。原创 2024-12-15 18:09:40 · 736 阅读 · 0 评论 -
根据区间删除数字的算法
输入:line = {1, 2, 3, 4, 5, 6, 7, 8, 9}, line1 = {2, 5}, line2 = {3, 6}输入:line = {1, 2, 3, 4, 5, 6, 7, 8, 9}, line1 = {1, 9}, line2 = {6, 9}输入:line = {1, 2, 3, 4, 5, 6, 7, 8, 9}, line1 = {2}, line2 = {3}期望输出:line = {1, 2, 6, 7, 8, 9}(删除了 3, 4, 5)原创 2024-12-13 16:39:18 · 1021 阅读 · 0 评论 -
Qt 中处理 QAction 信号与槽
在 Qt 框架中,QAction 是一个核心组件,用于表示可触发的抽象动作,广泛应用于菜单、工具栏以及快捷键功能的实现。通过本文介绍的技术方案,开发者可以高效实现 QAction 的信号与槽绑定,轻松处理菜单、工具栏以及快捷键的用户交互逻辑。信号选择: QAction 提供的 triggered(bool) 是最常用信号,适用于菜单项和工具栏的触发场景,而 clicked() 信号仅适用于按钮类(如 QToolButton)。在主程序中将 QAction 的信号连接到槽函数,实现模块间通信。原创 2024-12-12 14:07:00 · 741 阅读 · 0 评论 -
如何利用GPT开发高效且高质量的C++代码
在软件开发中,GPT能够显著提高编码效率和产品质量,尤其是在C++这种对性能和复杂性要求较高的语言中。对于C++开发者而言,善用GPT不仅能节省时间,还能创造更高质量的产品,助力开发工作迈上新台阶。上述代码完全由GPT生成,只需简单描述“实现一个线程安全的单例模式”,便可获得功能完整且易读的代码,大幅减少开发时间。本文将从编码效率和产品质量的角度出发,详细探讨如何利用GPT协助C++开发,并通过生动的示例展示其应用。通过GPT的反馈,开发者可以迅速识别并修复潜在问题,避免上线后因内存泄漏导致的不稳定性。原创 2024-12-11 21:47:45 · 1445 阅读 · 0 评论 -
C++版拖拉机纸牌游戏实现
拖拉机纸牌游戏是一种流行的多人扑克牌游戏,通常由4名玩家组成两队对抗。此文档描述了一个基于C++实现的拖拉机游戏框架,包括牌组生成、洗牌、发牌、出牌和计分等功能模块。该C++框架提供了一个简化的拖拉机游戏实现,包含核心功能模块。未来可扩展为完整的游戏逻辑,并支持更多用户交互与高级功能。生成牌组:创建一副包含52张牌的扑克牌,花色包括红桃、方块、梅花和黑桃,点数从2到A。得分统计:计算回合中得分牌的点数,并将得分分配给玩家。功能:检查给定的牌是否为得分牌(5、10、K)。出牌顺序:按玩家编号依次出牌。原创 2024-12-11 20:25:55 · 529 阅读 · 0 评论 -
operator运算符
在 C++ 中,operator 可以重载为自定义类型的运算符,使得用户定义的类对象可以像内置类型一样使用运算符。以下是 GeoPoint 类中几个常见运算符的重载示例。根据实际需求,可以选择重载必要的运算符以增强代码的可读性和可维护性。通过这些运算符,允许对 GeoPoint 的经纬度进行递增或递减。通过运算符,允许对 GeoPoint 的经纬度进行加减操作。2. 算术运算符 (+, -, *, /)自增/自减运算符:用于递增递减操作。算术运算符:方便进行数学操作。流运算符:便捷的输入/输出。原创 2024-12-10 13:55:02 · 298 阅读 · 0 评论 -
向量的大小比较
和或模比较:适用于需要根据某种数学意义(如和、模)的大小比较时。字典序比较:直接用 < 等运算符,适用于需要整体比较时。大小比较:只关心元素个数时,用 size()。选择合适的方式取决于你的具体需求和数据性质。如果所有元素都相等,则长度较短的向量更小。截断比较:适用于只比较部分前缀时。第一个不同的元素决定大小。按元素从左到右逐个比较。示例:比较向量元素的和。原创 2024-12-10 13:46:46 · 479 阅读 · 0 评论 -
基于直角坐标系的两点距离计算
在地理信息系统(GIS)以及几何计算领域,计算两点之间的距离是一个基础且常见的操作。本文将以 GeoPoint 数据结构为例,基于直角坐标系实现两点之间的距离计算,并提供完整代码及详细说明。这种方法适用于平面几何分析,若需应用于更复杂的地理信息计算(如球面距离),可参考大圆距离公式等技术实现。本文将基于此公式,计算两个 GeoPoint 类型的点之间的距离,并附带对点相等判断的逻辑。// 表示点的横坐标(lon)和纵坐标(lat)lon 和 lat 分别表示点的横坐标和纵坐标。=,快速判断两个点是否不同。原创 2024-12-09 17:23:21 · 351 阅读 · 0 评论 -
两个向量的重复数字查找算法
在日常开发中,处理两个数据集合(如数组或向量)之间的重复值查找是常见的需求之一。本文实现了一种高效的两个向量重复数字查找算法,能够输出按顺序排列的重复数字序列。存储第一个向量中的所有数字: 使用一个集合(std::set 或 std::unordered_set)快速记录 vec1 中的所有元素。由于遍历顺序与输入顺序一致,最终结果的重复数字序列自动与输入顺序匹配。查找重复数字: 遍历两个向量,判断数字是否重复,若重复则按顺序记录。输出结果为两个重复数字序列,分别对应两个向量中重复数字的排列顺序。原创 2024-12-06 15:10:36 · 345 阅读 · 0 评论 -
利用 CodeGeeX 提升 VS C++ 开发效率
CodeGeeX 作为一款基于深度学习的多语言代码生成工具,通过其智能化特性,为开发者提供强大的代码生成和优化能力。在 Visual Studio 中使用 CodeGeeX 辅助 C++ 开发,不仅提高了开发效率,还为开发者提供了更多创新可能。通过本文的介绍,您可以快速上手 CodeGeeX,并在日常开发中充分利用其强大的智能特性。在 Visual Studio 主菜单中,点击 扩展 > 管理扩展,然后在弹出的窗口中搜索 “CodeGeeX”。高效代码补全:结合上下文信息,为开发者生成合理的代码片段。原创 2024-12-05 11:17:17 · 1392 阅读 · 0 评论 -
基于闭合结构的插入点算法设计与实现
给定一个主向量 vec1 和一个待插入向量 vec2,需要将 vec2 的内容插入到 vec1 的两个指定边界值 left 和 right 之间。通过本算法的实现与优化,可以满足大部分场景下的插入需求,尤其是在地理信息系统或图形算法中具有实际应用价值。闭合结构情况:当 left 是首点且 right 是尾点时,将 vec2 插入到 right 后,以确保插入内容始终在闭合边界中。闭合结构插入:vec1 是一个环形闭合结构,left 为首点,right 为尾点。主向量或插入向量为空。原创 2024-12-05 10:52:34 · 384 阅读 · 0 评论 -
基于极角排序实现二维点的逆时针排列
通过本文的方法,你可以快速实现二维点的逆时针排序,将其应用到多种实际场景中。重心是整个点集的几何中心,其作为参考点能更均匀地分布点的极角,避免偏移。对于极角相同的点,代码中加入了基于距离的次级排序规则,确保排序稳定性。选择参考中心点:可以是所有点的重心,也可以是点集中最左下角的点。计算极角:对于每个点,相对于参考点计算极角(点与x轴的夹角)。如果点的数量较多,可以考虑避免重复计算中心点与点之间的差值。在地理信息系统中,点的逆时针排序是多边形边界构建的核心步骤。逆时针点排序可用于规划障碍物的边界路径。原创 2024-12-03 09:11:54 · 892 阅读 · 0 评论 -
qt实现对pdf的编译、读、写、显示
1.1 下载 PDFium 源码克隆 PDFium 的官方源码仓库:cd pdfium下载依赖项和工具链:1.2 配置编译环境PDFium 使用 GN 和 Ninja 编译工具。你需要安装以下工具:GN:生成构建文件。Ninja:高效的构建工具。运行以下命令以配置生成文件:配置编译选项(可选): 在 args.gn 文件中设置所需的编译选项。原创 2024-12-03 08:40:28 · 1235 阅读 · 0 评论 -
Q_ARG封装复杂类型
Q_DECLARE_METATYPE(std::vector): 这行代码告诉 Qt 元对象系统将 std::vector 类型作为一种可用的类型进行处理。Q_ARG(std::vector, data): 如果你希望在特定的信号槽连接中使用 Q_ARG 来传递参数,Q_ARG 将确保 data 的类型正确地传递。使用 Q_ARG 与 std::vector原创 2024-11-27 15:26:05 · 632 阅读 · 0 评论 -
儿童电脑的监控
通过 Qt 的模块化设计和 Windows API 的配合,可以实现功能强大的儿童电脑限制软件。这是一个完整的架构,按照需要可以进一步扩展,比如加入远程控制功能、使用统计等。原创 2024-11-26 09:55:58 · 443 阅读 · 0 评论 -
基于 Qt 和 GStreamer 的环境中构建播放器
配置环境变量 GST_PLUGIN_PATH 和 PATH(将 GStreamer 的 bin 目录添加到系统路径)。├── CMakeLists.txt # CMake 配置文件(VS2022 使用)通过 Qt Designer 创建基本界面,包含按钮(播放、暂停、停止)、滑动条(音量控制)。│ ├── ui_mainwindow.h # Qt 界面自动生成文件。│ └── mainwindow.ui # 主窗口的 UI 定义。支持基本控制功能(播放、暂停、停止、跳转)。原创 2024-11-26 08:27:18 · 490 阅读 · 0 评论 -
FFmpeg 音视频同步问题
在使用 FFmpeg 进行开发时,音视频同步问题是一个常见且复杂的问题,涉及到时间戳管理、帧率处理、以及容器格式的支持等多个方面。原创 2024-11-25 17:32:06 · 1345 阅读 · 0 评论 -
Qt C++ 的电视远程投屏程序
此实现是一个基础版本,可根据需求逐步扩展,例如添加更多协议支持(如 DLNA、Miracast)。捕获当前主屏幕画面(可选部分屏幕),调整分辨率并压缩为合适的格式(如 JPEG)。电视端需要运行一个简单的服务器程序,用于接收并解码图像数据,并实时显示。电视设备需响应此消息,并回传自己的 IP 地址、名称等信息。使用 TCP 连接选中的设备,并准备发送屏幕图像数据。使用局域网广播(UDP)发现支持投屏的电视设备。连接成功后,保持长连接,用于持续发送帧数据。多设备支持:支持同时向多个设备投屏。原创 2024-11-21 10:19:29 · 450 阅读 · 0 评论 -
DEM 数据进行几何纠正DOM
通过使用 DEM 和影像的几何纠正,可以减少地形畸变的影响,使影像更准确地反映地面特征。这个过程通常包括数据加载、配准、几何纠正和输出生成几个步骤。在实际应用中,可能需要使用更复杂的算法来处理影像和 DEM 的配准问题、几何变换和高程模型。你可以根据实际情况调整这段代码,以满足具体的精度和性能需求。原创 2024-11-20 17:04:51 · 1288 阅读 · 0 评论 -
Bellman-Ford 和 SPFA 算法的实现DEM路径搜索
首先,假设你已经有一个 2D 数组表示 DEM 数据,每个元素的值表示某个位置的高度。你可以根据特定的规则来决定哪些区域是障碍物或无效值。DEM 数据处理:通过 isObstacle 函数判断高度是否低于给定的阈值,从而判断是否为障碍物。SPFA 算法:SPFA 是一种基于队列的改进算法,它在大多数情况下比 Bellman-Ford 快。Bellman-Ford 算法:该算法是用于解决单源最短路径问题的经典算法。如果你有特定的数据或者需要进一步的功能扩展,随时告诉我!V−1 次,适用于带负权边的情况。原创 2024-11-19 21:01:59 · 495 阅读 · 0 评论 -
DEM寻路算法的实施方案设计
DEM(Digital Elevation Model,数字高程模型)是地形分析和路径规划中常用的数据表示方法。基于DEM的寻路算法主要用于在高程数据上找到从起点到终点的最优路径,广泛应用于无人机导航、地形建模和地质勘探等领域。本设计文档阐述了基于DEM的寻路算法的设计思路、算法原理、代码实现和测试验证,最后给出项目实施的总结。本文档设计了一个基于A*算法的DEM寻路方案,详细阐述了算法原理和实现步骤,并通过C++代码和示例数据验证了其有效性。未来可以优化性能并适配更大的DEM数据集。原创 2024-11-19 08:51:58 · 776 阅读 · 0 评论 -
借助 AI 助力软件研发:基于 C++ 的行业应用与开发方法详解
从实际应用来看,AI 技术与 C++ 的结合已在多个领域展现出巨大的潜力。无论是优化算法、自动生成界面代码,还是提升系统架构设计效率,AI 都能够帮助开发者节省时间并提升产品质量。随着 AI 技术的进一步发展,我们可以期待更多智能工具的出现,使开发过程更加自动化和智能化。未来,C++ 与 AI 的结合将进一步推动高性能系统的研发,在无人驾驶、智能制造、金融科技等领域继续发挥重要作用。原创 2024-11-17 20:05:02 · 1117 阅读 · 0 评论 -
Dijkstra 算法的实现方案
GDAL 库:确保你的开发环境已经安装了 GDAL 库,并在 Qt 项目中正确配置了 GDAL 库路径。加载 DEM 文件:使用 GDAL 加载 DEM 文件,并获取像素坐标到地理坐标的转换参数。将 “path/to/your/dem/file.tif” 替换为你的 DEM 文件路径;这段代码可以在 DEM 数据上寻找到避开障碍物的最优路径,并输出路径的地理坐标。Dijkstra 算法:使用优先队列进行路径搜索,寻找代价最低的路径。输出路径:将路径的地理坐标保存到 txt 文件中。下面是实现该功能的代码。原创 2024-11-14 08:41:29 · 348 阅读 · 0 评论 -
tcl二次开发语言应用
Tcl(Tool Command Language)是一种广泛用于嵌入式系统、系统管理、自动化测试等领域的脚本语言。作为一种二次开发语言,Tcl因其简洁的语法、灵活的扩展性和高效的开发速度,在实际开发中具有许多独特的优势。本文将通过以下几个方面详细介绍Tcl的特点、性能、安装及使用。原创 2024-11-12 21:32:22 · 1494 阅读 · 0 评论