- 博客(389)
- 收藏
- 关注
原创 OOP和软件设计中的五大核心设计原则——SOLID原则
鸭子类型”——如果它走路像鸭子、叫声像鸭子,那它就应该能当鸭子用。子类不能违背父类的行为约定。就像电脑的USB接口(抽象)——鼠标、键盘(细节)都依赖USB标准,而不是电脑直接依赖具体设备。就像一个人只专注做一件事(例如厨师只管烹饪,服务员只管点餐),避免“万能类”导致代码难以维护。就像乐高积木——通过添加新积木(扩展)来构建新功能,而不是拆掉旧积木(修改原有代码)。就像点餐时只选自己吃的菜,而不是被迫接受一份固定套餐(包含不需要的功能)。,是设计模式(如工厂、策略模式)的基础理论支撑。
2025-05-21 09:49:29
141
原创 C++ qt基类的成员变量,在派生类中需要具有不同的数据类型的解决方法
这是最直接的方法,因为 QScrollArea 和 QStackedWidget 都是 QWidget 的子类。这种方法在 Qt 中是常见且有效的。
2025-05-19 16:40:16
169
原创 CarouselEffect实现桌面切换效果的程序具体流程
通过这种3D变换和渐进式的动画,CarouselEffect 创建了一种视觉上流畅的旋转木马效果,使得桌面页面切换更加自然和引人入胜。旋转木马效果模拟页面在一个圆形轨道上旋转,当前页面位于圆环正前方,其他页面分布在圆环上的不同位置。
2025-05-18 11:37:36
229
原创 D-Pointer(Pimpl)设计模式(指向实现的指针)
Pimpl(Pointer to Implementation)是一种设计模式,用于将类的接口与实现分离,从而隐藏实现细节,降低编译依赖,提高代码的可维护性和可扩展性。这种模式在 Qt 中被称为 D-Pointer,广泛应用于 Qt 框架中。
2025-05-13 16:05:23
545
原创 Qt 样式表qss学习
在Qt样式表(QSS)中,当多个样式规则对同一个属性指定不同的值时,就会产生冲突。Qt通过一套优先级规则来解决这些冲突,确保最终的样式是明确且一致的。选择器可以使用状态来限制在部件的指定状态上的应用。伪状态在选择器之后,用冒号。对于一些复杂的部件修改样式,可能需要访问它们的子部件,如。如:鼠标悬停在按钮上时其按钮的颜色为白色。在这种情况下,所有四个矩形(的向上、向下箭头灯。
2025-05-13 13:07:45
686
原创 基于CubeMX输出工程的FreeRTOS 配置使用
编译套件:cmake 、arm-none-eabi-gcc。,复制到工程目录中,然后对其修改即可。
2025-05-12 06:45:56
217
原创 workspaceLayout->setStretch(4, 1);功能想详细解释
【代码】workspaceLayout->setStretch(4, 1);功能想详细解释。
2025-05-09 09:52:48
94
原创 QStackedLayout、QStackedWidget 二者的区别?
和都是 Qt 中用于管理多个页面(或窗口部件)的类,但它们在使用方式和功能上有一些区别。
2025-05-08 16:51:46
405
原创 多线程编程中遇到奇怪问题
如果这个临时对象在槽函数执行前被销毁(例如,信号发射后立即析构),那么槽函数中按值接收的。此错误通常是因为在异步操作完成后,某个对象(如界面控件)已被销毁,但其虚函数仍被调用(如通过信号槽)。槽函数访问的对象(如界面元素)在异步操作期间始终有效。例如,界面元素可能在异步操作完成前被销毁,导致调用纯虚方法时对象已不存在。未被销毁,如果异步操作(如文件加载)尚未完成,直接通过。的第五个参数(上下文对象)自动断开连接。访问的是无效内存,行为未定义。:在触发异步操作时,使用。会执行,而注释后,后面的。
2025-05-07 15:39:16
239
原创 竞态条件是什么
竞态条件是多线程或多进程环境中常见的问题,它会导致程序的行为和结果依赖于线程或进程的执行顺序。解决竞态条件的方法包括使用互斥锁、信号量、原子操作和线程安全的容器。通过这些方法,可以确保对共享资源的访问和修改是安全的,从而避免数据不一致和不可预测的错误。
2025-05-07 15:33:35
532
原创 Qt重写相关事件,原来的默认功能是不是丢失了?
默认实现QWidget的默认和实现会处理一些基本的鼠标事件逻辑,但不会实现你想要的自定义行为。重写实现:通过重写这些函数,你可以添加自定义逻辑,例如改变控件的样式或发射自定义信号。当你重写和时,原来的默认功能并不会丢失,只要你记得调用父类的实现。在Qt中,当你重写一个事件处理函数时,你可以选择是否调用父类的实现。如果你不调用父类的实现,那么默认功能会被覆盖;如果你调用父类的实现,那么默认功能仍然会被保留。调用父类的实现:通过调用和,你可以保留父类的默认行为,同时添加自定义逻辑。不调用父类的实现。
2025-05-07 10:13:38
882
原创 事件的传递
在Qt中,事件处理遵循一个明确的传播机制。当一个事件(如鼠标按下事件)发生时,它会首先传递给最底层的控件(即最具体的控件),然后向上逐级传递,直到被某个控件处理为止。如果事件没有被任何控件处理,它最终会被传递给顶层窗口。在你的场景中,如果QWidget中包含一个,并且你重写了QWidget的accept()QWidgetQWidgetQWidgetQWidget。
2025-05-07 10:03:08
335
原创 const MachineTree &getMachineTree() ; MachineTree &getMachineTree() const; 区别?
返回一个常量引用,调用者不能通过返回的引用修改对象。函数可以修改调用它的对象的状态。返回一个非常量引用,调用者可以通过返回的引用修改对象。函数不能修改调用它的对象的状态。如果你希望提供对内部数据的只读访问,使用。如果你希望提供对内部数据的读写访问,并且函数本身不修改对象状态,使用。
2025-05-06 16:36:19
286
原创 QT异步线程通信
信号和槽:通过信号通知任务完成。QFuture和:提供更灵活的异步任务管理,可以获取任务的返回值。:等待线程池中的所有任务完成,但会阻塞当前线程。根据你的需求选择合适的方法。如果你需要任务的返回值,建议使用和QFuture。
2025-05-06 12:40:36
388
原创 機器模板類設計
fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;TemplateInfo。
2025-04-30 15:09:25
412
原创 Unable to negotiate with 192.168.7.1 port 22: no matching host key type found. Their offer: ssh-rsa
如果你只是临时需要连接到服务器,可以使用方法 1。如果你有权限修改服务器配置,建议使用方法 2,以提高安全性。如果你经常需要连接到这台服务器,可以使用方法 3,将配置保存到客户端的配置文件中。
2025-04-29 16:43:37
318
原创 mermaid 序列图 解析
这张序列图清晰地展示了任务执行过程中各个组件之间的交互顺序和消息传递关系。通过阅读这张图,可以快速理解系统的交互逻辑,帮助开发和维护人员更好地理解和设计系统。
2025-04-29 14:04:19
827
原创 qt中状态机详细使用方法和教程
信号转换(SignalTransition):基于信号的转换。条件转换(ConditionTransition):基于条件的转换。// 信号转换:当按钮点击时从state1切换到state2// 条件转换:当满足某个条件时从state2切换到state1});Qt状态机是一个强大的工具,可以帮助你管理复杂的逻辑和状态转换。通过定义状态、转换和动作,你可以轻松实现复杂的交互逻辑。希望这个教程能帮助你快速上手Qt状态机!
2025-04-28 11:09:01
406
原创 .dep 和.rpm有什么区别?
适用场景如果你使用的是基于 Debian 的系统(如 Ubuntu),则应使用.deb文件。如果你使用的是基于 Red Hat 的系统(如 Fedora 或 CentOS),则应使用.rpm文件。功能和依赖管理两者都提供了强大的依赖解析功能,但.deb文件通常在基于 Debian 的系统中表现更好,而.rpm文件在基于 Red Hat 的系统中表现更好。转换如果需要在不同的系统之间共享软件包,可以使用工具如alien进行格式转换。希望这些信息对你有帮助!如果你还有其他问题,欢迎随时提问。
2025-04-27 15:07:36
415
原创 Windows 的文件系统不区分大小写,Linux区分
在 Windows 系统中,文件系统不区分大小写,因此和都可以正常工作。然而,为了确保代码的跨平台兼容性和一致性,建议统一使用文件名的大小写。
2025-04-27 10:34:40
211
原创 Windows MinGW 下QwtPlot3D的编译
https://www.cnblogs.com/r0xFED/p/8627656.html
2025-04-22 21:39:36
108
原创 qcustomplot类介绍
库的核心部分,QCustomPlot 是一个基于 Qt 的开源绘图库,用于创建各种 2D 图表和图形。表示一个坐标轴,用于在图表中显示数据的刻度和标签。是一个具体的绘图元素类,表示一个折线图或散点图。是一个抽象基类,表示可以被分层绘制的对象。是一个抽象基类,表示可以被绘制的绘图元素。是一个接口类,用于提供一维数据的绘图接口。是 QCustomPlot 库的核心类,它是一个自定义的。是一个抽象基类,表示可以被绘制的绘图项。表示一个柱状图,用于显示数据的柱状表示。是一个抽象基类,表示图例中的一个项。
2025-04-22 13:42:54
634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人