QT
文章平均质量分 84
QT研究学习笔记及实战总结
w风雨无阻w
16年游戏及软件研发经验,csdn平台优质作者,曾就职于盛大美游集团-研发副总裁岗位,曾带领团队研发累计百万用户在线、盈利上亿的产品,擅长服务器、客户端研发框架搭建,擅长cocos2d、cocoscreator 、android原生开发、iOS原生开发技术等。通过对技术领域的探求打磨自己的技术敏感度和技术决策力!
展开
-
QT5.14.2解锁Qt自定义标题栏的无限可能,一键拥有与众不同的个性窗口!
通过本文的实战演练,我们成功实现了一个基本的自定义标题栏。当然,这只是一个起点,你可以根据需求进一步扩展和优化,比如添加透明度调节、自定义按钮等。原创 2024-04-08 11:22:23 · 647 阅读 · 0 评论 -
Qt5.14.2 揭秘Qt日志神器高效诊断程序潜在隐疾
通过QLoggingCategory::installMessageHandler函数,可以自定义日志输出的处理回调函数,将日志信息重定向写入到文件中,而不是直接输出到控制台。通过这种方式,我们就可以将Qt程序的日志信息持久化存储到文件中,不再依赖于控制台输出,从而方便了日志的收集和管理。总之,在开发Qt应用的过程中,我们需要时刻保持对代码"内疾外馁"的警惕,及时发现并排查问题。这个函数会在Qt输出日志时被调用,我们在函数内部打开了一个名为log.txt的文件,并将日志信息以特定的格式写入到文件中。原创 2024-04-03 19:50:41 · 1325 阅读 · 0 评论 -
Qt 5.14.2密码学铠甲 - 全面数据防护战术解析
具体来说,加密是通过使用密钥(key)和加密算法(encryption algorithm)的组合,将原始可读的明文数据转换为无法直接阅读的密文数据。总之,Qt为程序员提供了全面的密码学工具箱,只有熟练掌握相关API的使用,方能编写出安全可靠的程序。未来,或许量子计算的发展将彻底改变密码学的面貌,但当下,遵循已知的最佳实践就是我们应尽的职责。数据加密是一种将明文数据转换为密文数据的过程,使得未经授权的人无法直接读取和理解数据内容,从而保护数据的机密性和完整性。这可以有效防止相似数据产生相似的哈希值。原创 2024-04-02 17:14:41 · 1377 阅读 · 0 评论 -
Qt5.14.2 揭秘Qt多线程,打造流畅、高效的桌面应用!
Qt多线程的应用前景广阔,它不仅可以提升桌面应用的性能,还可以在嵌入式设备上发挥重要作用。随着技术的发展,我们可以预见Qt多线程将带来更多创新和突破。在本文中,我们仅仅触及了Qt多线程的表面。在实际项目中,如何优雅地处理线程间的同步和通信,如何避免常见的多线程陷阱,这些都是值得我们深入探讨的话题。在下一篇文章中,我将带你深入Qt多线程的高级应用,敬请期待!原创 2024-04-02 15:47:13 · 867 阅读 · 0 评论 -
Qt5.14.2 独步天下!自制Qt5 P2P聊天神器,让安全与可靠性不再是梦
在上一期的文章中,我们已经了解了如何利用Qt开发一个基本的P2P聊天系统,并对服务端的用户管理和客户端的网络交互、音视频处理等模块进行了代码实践。不过光有基本的通信功能还远远不够,要想开发出一款值得信赖的聊天应用,我们还必须重点关注系统的安全性和可靰性这两大核心需求。今天,我们就来全方位剖析一下在P2P架构中如何实现这两方面的技术保障。原创 2024-04-01 12:43:27 · 864 阅读 · 0 评论 -
Qt5.14.2 P2P聊天系统开发实战,跨平台通话零距离
至此,我们已经学习了如何利用Qt5高效开发一个P2P聊天系统。在实际项目中,我们还需要进一步考虑安全性、可靠性、用户认证、断线重连、数据缓存和重传、数据冗余与纠错、负载均衡等,下一期博文,我将为您深度解析以上功能,让我们共同攀登事件编程的巅峰!原创 2024-04-01 12:28:53 · 1471 阅读 · 0 评论 -
Qt5.14.2 大文件处理的Qt多线程黑科技
通过本文的分享,相信大家对于如何在Qt多线程环境下高效安全地处理大型二进制文件,有了更深入的理解。尽管处理大文件并发访问问题需要格外小心,但Qt为我们提供了强有力的工具箱,让我们在性能和安全之间寻找最佳平衡点。原创 2024-03-31 10:45:39 · 1996 阅读 · 0 评论 -
Qt5.14.2 程序的华丽开场,让Splash窗口释放无限可能!
作为一款有追求的优秀软件,启动时的那个小小的Splash窗口可谓是程序的形象大使,它展现着软件精雕细琢的品味和非凡的待客之道。今天,就让我们一同领略Qt对这个"开场小品"的深谙之道——Splash窗口设计,感受一番Qt大神们在程序启动体验上的非凡追求!原创 2024-03-31 10:27:49 · 1147 阅读 · 0 评论 -
Qt5.14.2 定时器黑魔法,一键唤醒延时任务
纵观QTimer提供给我们的诸多能力,我们不得不赞叹Qt大神们的一片深谋远虑。他们从底层入手,为我们构建了一个无比强大的定时器系统,帮助我们轻松实现各种"延时任务"需求。当然,在使用QTimer的过程中,Qt大神们也交代了一些注意事项:及时停止和销毁不再需要的QTimer对象,避免资源泄露对于非GUI线程的定时器,要注意事件循环的存在合理分配定时器的类型,避免不必要的CPU开销总之,只要我们遵循Qt大神的教诲,定时器这一看似简单的任务也能发挥出应有的能量,为我们的程序锦上添花。原创 2024-03-30 20:12:06 · 990 阅读 · 0 评论 -
Qt5.14.2 剪贴板之巧——Qt让“复制粘贴“更高效
作为现代图形界面程序的标配功能,剪贴板操作在日常办公和编程中无疑是最常见的场景之一。而在Qt的疆场内,大神们也为我们准备了一手利器——QClipboard类,让复制粘贴操作变得前所未有的简单高效。今天,就让我们一睹究竟,领略Qt大神们在这方面的非凡功力吧!原创 2024-03-30 09:25:42 · 1794 阅读 · 0 评论 -
Qt5.14.2 大神的拖放艺术,优雅而强大的交互体验
作为图形界面软件,良好的用户交互体验是制胜的关键。而在Qt大神们的绝世编程之道中,拖放操作无疑占据着非常重要的一席之地。它不仅操作简单直观,而且可以完成大量看似复杂的任务,是提升用户体验质量的利器。今天,就让我们一同欣赏Qt大神们在这一领域的绝妙功力吧!原创 2024-03-30 08:01:18 · 1144 阅读 · 0 评论 -
Qt5.14.2 无所不能的Qt数据库操作之旅
通过上述介绍,我们已经初步领略了Qt大神们在数据库编程领域内的非凡造诣。当然,这只是冰山一角而已,他们实际上对数据库开发的掌控还远不止如此。比如在SQL查询方面,Qt提供了强大的QSqlQueryModel帮助我们构建任意自定义的数据视图;再如在数据库报表输出方面,Qt Preview框架则为我们提供了现成的解决方案,等等。原创 2024-03-28 21:24:31 · 1244 阅读 · 0 评论 -
Qt5.14.2论Qt大神如何华丽操控计算机系统
身为一名程序员,难免要与计算机系统打交道。而要想高效地和系统沟通、指挥它为我们工作,最好的办法莫过于拥有一个强大的跨平台开发框架了。今天,就让我们一同领略Qt大神如何在此领域内驰骋自如,优雅地操控系统完成各种任务吧!原创 2024-03-28 19:27:52 · 1093 阅读 · 0 评论 -
QT5.14.2 码上热浪,用Qt5狂暴轰入多媒体狂潮
在这个视觉化、移动化的时代,多媒体应用无疑成为了现代计算机程序的香饽饽。无论是摄像头录像、视频播放器,还是音频可视化、GIF动画浏览,都让用户体验达到了前所未有的层次。而要想在这片热土上百战百胜,我们的祭旗就是Qt5这一跨平台框架了!相比其他多媒体开发方案,Qt5最大的独门绝学就在于其强大的跨平台能力。不管是Windows、macOS、Linux、Android还是iOS,Qt5都可以像交好朋友那样亲密无间地与之相处,毫无隔阂。原创 2024-03-27 17:15:37 · 1255 阅读 · 0 评论 -
QT5.14.2 指尖加油站 - 点燃Qt5图像操作的艺术火花
你是否也曾被图像处理的魔力所深深吸引?无论是滤镜般的模糊效果,还是缤纷绚丽的着色运算,亦或是栩栩如生的阴影映射,图像处理的艺术之美在这里尽展无余。而幸运的是,有了强大的Qt5框架,我们完全可以在自己的应用程序中,随心所欲地挥洒这些丝丝缕缕的图像魔法!今天,就让我带你一同走进Qt5图像操作的绚丽国度,去一探这片技术的最高殿堂。我们将一一揭秘实现图像扭曲、模糊、着色、阴影和透明等高级艺术效果背后的秘密,还有大量生动的代码示例为你指路!只要跟上节奏,很快你就能在图像处理的道路上驰骋自如,遨游无际!原创 2024-03-27 16:59:19 · 1207 阅读 · 0 评论 -
Qt5.14.2 全面解锁Qt5事件处理的精髓
上一篇博文中,我们从高空中俯瞰了Qt5事件编织的壮阔进程。无论是最普通的鼠标点击,还是最先进的多点触控手势,抑或是跨越线程的事件传递,Qt5都为开发者们提供了一整套完备的事件处理方案和强大工具链,只等着你来施展渔阳鼎力,尽情驰骋拳打脚踢。现在,就让我们放眼脚下,深入研究其中最为普通而又至关重要的鼠标和键盘事件吧!毕竟,它们就如同GUI应用程序的肢体神经,承载着人机交互的一切。那么,Qt5是如何帮助我们精准捕捉和优雅响应这些来自用户的交互指令呢?让我们拨开重重迷雾,一一揭晓!原创 2024-03-26 19:02:05 · 870 阅读 · 0 评论 -
Qt5.14.2 事件机制大揭秘,让你的应用听其命而行
对于标准的GUI事件,Qt5已经为我们提供了完备的事件类和处理机制。但在某些情况下,我们也需要定义应用程序自身的事件类型,以传递程序特有的通知和消息。public:private:Q_OBJECTpublic:protected://发送自定义事件"));首先我们定义了一个MyEvent类继承自QEvent,并为它指定了一个唯一的Type类型值。然后在MyObject中的event()函数里,我们检查传入的事件类型,如果是MyEvent就进行处理。原创 2024-03-26 18:33:09 · 936 阅读 · 0 评论 -
Qt5.14.2 Qt5图形原力觉醒,窥见图像操作的无限未来
相比于其他图形界面框架,Qt5最大的亮点莫过于其原生多媒体能力了。在Qt5中,不论是对图像、视频还是音频的操作,都有现成的类库为你效劳,如行云流水般便捷高效。今天我们就来一睹Qt5图像类的芳容,看看如何在程序中随心所欲地驾驭图像。原创 2024-03-25 13:30:22 · 955 阅读 · 0 评论 -
QT5.14.2 尽情挥洒,Qt5带你重拾画笔绘就精彩图形
编程不仅是为了编写逻辑,同时也是一门艺术。如何在代码的世界中挥洒自如,描绘出精美绝伦的图形?今天我们就来学习Qt5强大的图形绘制功能,看看如何用代码勾勒出文字、线条、椭圆,甚至3D场景和大规模2D图形集合,为你的应用程序增添无穷魅力!原创 2024-03-25 13:18:02 · 1310 阅读 · 0 评论 -
Qt5文件操作尽在掌控,读写删改无所不能
作为C++跨平台图形界面开发框架,Qt5不仅提供了强大的界面构建能力,在文件操作方面同样具备出色的功能支持。今天我们就来全面探索Qt5的文件操作能力,看看它如何让我们对文件系统为所欲为:创建新文件夹、读写文本内容、删改文件名,甚至操作INI和XML文件。跟着我一起,开启Qt5文件系统之旅!原创 2024-03-24 09:54:50 · 806 阅读 · 0 评论 -
QT5.14.2 Qt5组件随心所欲,从界面到实用一把抓
Qt5作为跨平台的C++图形界面框架,自带了丰富的组件供我们使用。无论是构建精美的UI界面,还是满足各种实用的需求,Qt5总能为我们意趣盎然地施展绝活。今天,就让我们一同探索Qt5中的日历组件、登录窗口、文件对话框、颜色选择对话框、进度条和Timer组件,见识它们的强大之处!原创 2024-03-24 09:44:44 · 1029 阅读 · 0 评论 -
Qt5.14.2 Qt5布局和容器控件大揭秘,一统江湖永不缺席
在上一篇文章中,我们全面讲解了Qt5框架下丰富的基础控件和数据视图控件。但谈何容易,如果只是简单摆放这些控件,想要打造优雅的UI界面可就难了。今天我们就来探索Qt5强大的布局和容器管理机制,学习如何通过灵活组合,将控件们统统服务帖帖地安排妥当。原创 2024-03-23 14:53:37 · 823 阅读 · 0 评论 -
QT5.14.2 Qt5控件百战不殆,从按钮到表格 一网打尽
Qt的模型-视图架构允许我们通过实现自定义代理(QAbstractItemDelegate)来自定义数据在视图中的显示和编辑行为。Q_OBJECTpublic:在paint()函数中,我们可以自定义每个单元格的渲染方式,实现诸如条形进度显示、颜色代码等自定义需求。而createEditor()则让我们能为指定的数据类型提供自定义的编辑控件,比如为颜色数据使用一个QColorDialog。有时候Qt内置的视图还不够用?原创 2024-03-23 14:19:19 · 1086 阅读 · 0 评论 -
QT5.14.2深入剖析Qt反射机制的实现原理
Qt框架中提供了强大的反射机制,使得我们能够在运行时动态地创建对象,查询和调用对象的属性、方法等。Qt框架秉承着"不重复发明"的理念,在满足跨平台、高性能等核心需求的同时,也提供了丰富的动态性扩展,使得开发者能按需选择合适的方案。这个元数据类中包含了类的结构信息,比如类名、继承关系、属性、方法签名、信号/槽等,并且通过QMetaObject类封装了访问这些元数据的接口。反射机制使得我们能够在运行时动态构造对象、访问属性和调用方法,打破了静态语言的限制,提高了代码的灵活性。原创 2024-03-21 12:20:04 · 2215 阅读 · 1 评论 -
QT5.14.2 Qt布局调和术:精妙UI设计背后的自适应魔法
Qt提供了一系列的布局类,如QHBoxLayout、QVBoxLayout、QGridLayout以及更高级的QStackedLayout和QFormLayout,这些布局类帮助您的应用程序在不同的窗口尺寸和分辨率下保持一致性和美观性。以下是一个更细致的Qt项目,实现了一个较为复杂的用户界面,它包含不同类型控件的组合以及嵌套布局,并演示了如何通过调整大小策略来优化布局。这个水平的SpacerItem会在界面上创建一个可以伸缩的空间,保持界面的美观性同时也提供了更多的布局灵活性。原创 2024-03-21 11:19:26 · 2574 阅读 · 0 评论 -
QT5.14.2 Qt窗体应用开发的精髓
作为一个跨平台的图形界面开发框架,Qt拥有强大的窗体开发能力。今天,就让我们一同揭开Qt窗体开发的神秘面纱!通过设置QWidget的各种属性和重写虚函数,我们就能自定义窗体的外观和行为。Qt窗体的标题栏上默认有最小化、最大化和关闭按钮,我们可以通过setWindowFlags()来控制这些按钮的显示与否,也可以自定义标题栏的内容。窗体编程是Qt的核心功能,掌握了这些技能就等于打开了Qt编程的大门。然后在窗体上添加自定义控件作为标题栏,当鼠标在这些控件上点击并拖动时,就可以改变窗体位置了。原创 2024-03-20 20:38:50 · 539 阅读 · 0 评论 -
QT5.14.2 揭开Qt5原对象系统的神秘面纱,解锁应用开发的无限大门
在深入了解元对象系统之前,我们先来回顾一下Qt中的对象系统。Qt中的每个对象都继承自QObject,QObject提供了一些基本的对象功能,如对象树、对象属性、信号槽等。这种传统的对象系统存在一个明显的缺点:所有Qt对象都必须显式继承自QObject,这在某些情况下会带来不便。元对象系统(Qt Object Model)就是Qt5引入的一种新的对象系统,它提供了一种动态创建和管理QObject的方式,无需进行显式继承。这极大地提高了Qt的灵活性和扩展性,为我们打开了一扇全新的大门。原创 2024-03-20 15:34:17 · 1162 阅读 · 0 评论 -
QT5.14.2深入解析Qt QProcess用法之彻底掌控进程操作技巧
在理解Qt QProcess之前,让我们先了解什么是进程。进程是操作系统的一个核心概念。当程序在执行时,它将产生多个进程,每个进程都有自己独立的数据空间,这样就可以同时有多个用户执行同一程序,而不会产生冲突。进程的状态有:新生、执行、等待、就绪和结束。每个进程都有自己的唯一标识符,我们称之为PID。接下来,我们将介绍更多关于使用QProcess进行进程操作的内容,但是在本文中我们就先讲到这。原创 2024-03-19 13:54:42 · 6524 阅读 · 5 评论 -
Qt5.14.2 Qt多线程实战演练,全面掌握线程同步和线程池最佳实践
多线程编程是每个开发者必须掌握的基本能力之一。在上一篇文章中,我们学习了Qt多线程编程的理论知识。本文将切入实战,提供多个案例代码,帮助你彻底掌握Qt的多线程编程实践技巧。原创 2024-03-19 13:47:00 · 1002 阅读 · 0 评论 -
Qt5.14.2 深入理解Qt多线程编程,掌握线程池架构实现高效并发
在高并发的软件系统中,多线程编程是解决性能瓶颈和提高系统吞吐量的有效手段。作为跨平台的应用程序开发框架,Qt为我们提供了强大的多线程支持。本文将深入探讨Qt多线程编程的实现细节,并介绍线程池的设计思想,帮助读者彻底掌握Qt多线程编程技巧。原创 2024-03-18 14:51:47 · 6830 阅读 · 0 评论 -
QT5.14.2 探秘Qt信号槽奥秘--让对象间通信如虎添翼
作为Qt框架的核心机制,信号与槽不仅让对象间通信变得行云流水,更是彰显了C++语言强大的可扩展性。这样,只要订单状态改变,statusChanged信号就会被触发,Monitor的logStatus槽函数就会被自动调用,输出相应的日志,而不需要手动去调用。整个过程是自动完成的。由此可见,QObject::connect()是将发送者对象的信号绑定到接收者对象的槽函数上,从而建立两者间的通信通道。通过这个例子,我们可以看到Qt信号槽机制让对象间的监听与通信变得非常简单直观,大大增强了代码的可维护性和扩展性。原创 2024-03-18 12:11:33 · 1497 阅读 · 0 评论 -
QT5.14.2对象树之魅力 -- 让Qt编程如行云流水
而Qt以其独有的对象树模型,为我们解决了这一烦恼,让编程事半功倍,行云流水。同时Qt还规范了构造和析构的执行顺序,后构造的对象会先于父对象析构,避免了令人头疼的资源释放问题。是的,为了避免内存泄漏,我们必须手动删除每一个对象实例,这无疑将增加开发和维护的复杂度。相信在未来,Qt对象树一定会传承发扬光大,给我们带来更多编程便利,开启更高阶的面向对象编程时代!这个例子看似简单,但是如果没有Qt对象树的加持,我们就必须手动管理所有控件的创建和删除,以及内存释放的逻辑,代码量将成倍增加,工作效率大大降低。原创 2024-03-17 12:06:45 · 860 阅读 · 0 评论 -
QT5.14.2 探索Qt字符串操作的奥秘:Qt的QString如何成为你的编程利器?
随着我们一同深入探索了Qt字符串操作的世界,从基础的分割与拼接到高级的格式化与大小写转换,我们见证了QString类如何以其强大的功能和灵活的API成为Qt编程中不可或缺的工具。无论是在界面显示、数据处理还是网络通信中,QString都以其高效和便捷赢得了开发者的青睐。Qt的QString,这把锋利的编程利器,将与你一同迎接未来的每一个可能。然而,这只是冰山一角。Qt的QString还有更多的奥秘等待我们去发掘,更多的挑战等待我们去征服。那么,准备好迎接更多的知识挑战了吗?原创 2024-03-17 11:46:50 · 1276 阅读 · 0 评论 -
QT5.14.2 无路不通!Qt路径操作完全解惑
作为Qt开发者,Qt为我们提供了极其丰富的路径操作API,让我们可以高效方便地解决诸多路径相关的需求。通过Qt强大的路径API,我们可以在本地和远端自由操作文件,高效可靠地实现同步需求。掌握了Qt路径操作的精髓,我们就能够随心所欲地操控文件、目录,打造出功能强大、可靠稳健的应用程序。在今后的开发过程中,你一定能驾轻就熟地操纵各种路径,在文件、文件夹的读写操作中游刃有余。相信有了本文的详细分析和实战指导,你一定能够掌握Qt路径操作的精华,在今后的开发中遇到任何路径相关的需求,都能沉着应对,行云流水!原创 2024-03-16 11:50:27 · 1615 阅读 · 0 评论 -
QT5.14.2 探索QT的神秘力量:轻松获取MD5值的秘诀
在当今这个信息爆炸的时代,数据安全已经成为了我们每个人都需要关注的话题。MD5作为一种广泛使用的哈希算法,它的应用场景非常广泛,从密码存储到文件完整性校验,MD5都扮演着重要的角色。而在QT的世界里,获取MD5值就像吃一块蛋糕一样简单。今天,我将带你深入了解如何在QT中轻松获取MD5值。原创 2024-03-14 18:05:50 · 1252 阅读 · 0 评论 -
Qt 5.14.2 打造HTTPS下载器:安全高效的秘密武器
通过本文的学习,我们不仅掌握了如何在Qt 5.14.2中构建一个HTTPS下载器,还了解了如何使用回调机制来处理网络事件。但是,技术的世界总是在不断进步。在Qt的未来版本中,我们可能会看到更多的性能优化和新特性。那么,下一次我们将探索什么?是WebSockets?还是Qt for Python?请继续关注,答案即将揭晓!原创 2024-03-14 18:02:14 · 990 阅读 · 0 评论 -
QT5.14.2 视频分帧:QT与FFmpeg的高效结合
通过本文的介绍,我们学习了如何使用QT结合FFmpeg进行视频分帧。这一技术可以应用于视频编辑、视频分析、视频监控等多个领域。然而,视频处理是一个复杂的领域,还有许多高级技术等待我们去探索。在后续的博文中,我将带你深入了解更多的音视频处理技术,敬请期待。原创 2024-03-13 21:41:41 · 683 阅读 · 0 评论 -
QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅
(1)、FFmpeg 介绍FFmpeg,一个强大而灵活的音视频处理库,几乎支持所有的音视频格式。掌握FFmpeg,意味着你已经迈出了成为音视频领域专家的第一步。而QT,作为一个跨平台的C++图形用户界面应用程序框架,它的灵活性和强大的功能库使其成为开发者的最爱。将FFmpeg与QT结合,你将能够打造出既美观又功能强大的音视频应用。(2)、FFmpeg 版本说明FFmpeg有三种主要的版本类型:静态库版本、动态库版本和源码。A、静态库版本(Static)原创 2024-03-13 21:31:38 · 1892 阅读 · 0 评论 -
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
在前一篇文章中,我们介绍了 QuaZIP 在windows 环境的编译,获得了库文件。。本篇文章,继续实战演练,主要介绍 QuaZIP 的使用。原创 2024-03-12 18:26:43 · 933 阅读 · 0 评论 -
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
QuaZIP是一个基于Qt的开源库,它提供了对ZIP文件格式的读写支持。它简单、高效,且易于集成到任何Qt项目中。QuaZIP背后的力量来自于zlib库,这使得它能够处理各种压缩任务,同时保持跨平台的兼容性。QuaZIP主要功能有哪些?文件打包:QuaZIP可以将单个或多个文件打包成一个ZIP文件,这对于软件分发、数据备份或传输等场景非常有用。文件解压缩:QuaZIP同样能够解压缩ZIP文件,使得用户可以轻松地提取压缩包中的内容。跨平台支持。原创 2024-03-12 16:55:45 · 2325 阅读 · 1 评论