自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 【QT】QtConcurrent的使用介绍,与std::thread的区别

线程管理使用 Qt 的线程池,对于多数应用场景来说,这简化了线程的使用并优化了资源管理。提供更基础和直接的线程控制,适用于需要手动管理线程生命周期的情况。集成与兼容性与 Qt 的其他部分(如事件循环)集成良好,特别适用于 Qt 应用程序。是 C++标准的一部分,可以在任何 C++项目中使用,不依赖于 Qt。错误处理和安全性使用可以较容易地通过QFuture监视线程状态,而使用通常需要开发者自行处理线程同步和错误管理。根据具体需求选择合适的工具,如果是在 Qt 环境中并且不需要精细控制线程行为,

2024-04-22 10:43:08 586

原创 【C#】防御性编程策略float.TryParse()

方法的做法在处理可能不是有效数字的输入数据时非常有用,因为它允许程序继续执行而不是因为异常而中断。这是一种常见的防御性编程策略,确保数据解析的健壮性和程序的稳定性。方法,这是一个非常常用的方法,用于在转换时提供错误处理,以避免在无法转换字符串时引发异常。这行C#代码用于尝试将一个字符串转换成浮点数(

2024-04-17 15:48:08 290

原创 【QT】关于qcheckbox常用的三个信号,{sstateChanged(int) clicked() clicked(bool)}达成巧用

使用时,可以精确到复选框的三种状态变化,适用于需要区分未选中、部分选中和完全选中状态的场景。使用无参数的clicked()时,仅需要知道复选框被点击,而不关心其状态如何变化。使用时,可以直接获得复选框改变后的选中状态(是或否),适用于需要根据复选框的最新状态执行操作的场景。这些信号为开发者提供了灵活的方式来处理用户与复选框的交互。

2024-04-16 15:01:17 455

原创 【QT】QChartView和QChart的一些图表设置

在 Qt Charts 中,QChartView类提供了一些方法和属性来控制图表的渲染和交互行为。这些方法包括和,它们分别用于改善图表的视觉质量和增加图表的交互性。

2024-04-16 11:24:37 518

原创 【QT】Qt Charts的实际使用中的一些小细节完善如:resetZoom、fitInView

在Qt中, 使用 Qt Charts来创建和操作图表,重置图表缩放状态的功能可以通过调整图表视图的缩放比例来实现。Qt Charts中的。具体实现可能需要根据你的应用程序的实际架构和需求进行调整。另外,确保你的Qt项目包含了Qt Charts模块。扩展的部分:可以根据窗口的大小变化自动调整图表的大小和比例,以确保图表始终适合可视区域。提供了相关的方法来控制图表的缩放和平移。是重置图表视图的缩放到默认状态。,当点击这个按钮时,会触发图表视图的缩放重置。需要替换为实际的窗口尺寸变化事件或信号。

2024-04-09 15:07:22 308

原创 【QT】QChart初步使用;QChart、QLineSeries 和 QChartView的关系讲解

是三个核心组件,它们共同工作以创建和显示图表。简而言之,创建数据系列来存储数据,使用。则容纳和管理一个或多个数据系列(如。来组织和处理这些系列,然后通过。在 Qt Charts 框架中,在用户界面中展示这个图表。

2024-03-29 14:06:00 382

原创 【QT】对比C#的ArrayList,qt中也有自己的通用容器(若有误,恳请直接指出)

在Qt中,可以使用QList或来代替C#中的ArrayList。QList是Qt中的一个通用容器类,类似于C#中的List,但它不是类型安全的。另一方面,是的别名,用于存储可以包含任何类型的QVariant对象的列表。由于您的C#代码中ArrayList存储了不同类型的数据(整数和字符串),在Qt中使用可能更合适。

2024-03-06 17:11:12 526

原创 【QT】QTableView或QTableWidget 搭配QLineEdit实现数据的搜索显示

如果需要处理的数据量较大,或者需要高度定制化的表格(例如,不同类型的数据,复杂的渲染逻辑等),QTableView配合自定义模型和过滤器模型是更合适的选择。如果你的需求相对简单,数据量不大,通过手动过滤可能就足够了。在任何情况下,实现搜索功能通常涉及到监听搜索框的输入变化(例如使用QLineEdit),然后根据输入的内容更新表格的显示。在QTableView的情况下,这通常意味着设置过滤器模型的过滤规则;而在的情况下,则可能需要遍历表格项并手动隐藏或显示行。

2024-03-01 14:35:57 732

原创 【QT】• QSerialPort的waitForBytesWritten和waitForReadyRead使用

类中的和是同步阻塞函数,用于等待串口写入操作完成和等待新数据可读取。这些函数在特定情况下非常有用,但它们的使用需要根据具体的应用场景和通信需求来决定。

2024-02-27 17:46:01 1130 1

原创 【QT】关于QSerialPort的错误处理 (Error Handling)及错误类型

是 Qt 框架中用于串口通信的类,它提供了与串行端口进行数据读写和配置的功能。这个类封装了底层操作系统对串口的处理,使得开发者可以方便地在跨平台应用中实现串口通信。

2024-02-27 17:34:40 1294

原创 【C++】标准库函数std::move

移动语义(Move Semantics)是C++11中引入的一种机制,允许资源(如动态分配的内存、文件句柄、套接字等)从一个对象转移到另一个对象。这种机制可以提高性能,避免在对象赋值或传递时的不必要的资源复制。

2024-02-21 14:23:20 392

原创 【C#】Int32.Parse()、Int16.Parse()

都是 C# 中用于将字符串转换为整数的方法,分别用于处理 32 位整数和 16 位整数。在实际使用中,选择使用哪个方法取决于你的需求和数据的范围。如果你需要处理大范围的整数,可以选择。这两个方法的作用是相似的,都用于将字符串中的数字部分解析为整数。如果你知道数据不会超过 16 位整数的范围,可以选择。处理的整数范围更大,可以表示更大的整数值,而。如果字符串表示的整数超出了。

2024-01-17 17:51:03 759

原创 【QT】C++和C#在运算符上的一些区别

buffStr.Contains( “40”)) & (string.IsNullOrEmpty(pStr))和(!buffStr.contains( “40”)) && (pStr.isEmpty())总的来说,这两个表达式在逻辑上是相同的,只是在具体的语法和操作符选择上有所不同,因为它们分别属于不同的编程语言。这两个表达式是在不同的编程语言中使用的,并且它们在逻辑上是等效的,但具体的语法和风格有所不同。为空,那么条件成立。逻辑上,这两个表达式的含义是相同的,都表示如果。不包含特定的字符串(

2024-01-16 15:38:06 429

原创 【QT】qt中存储任何类型的数组QVector

为我们提供了动态数组的功能,允许我们在运行时灵活地管理和访问数据。是一个动态数组类,可以存储和管理任何类型的数据。,分别存储整数、字符串和自定义类型(类来存储任何类型的数组。在Qt中, 可以使用。创建了三个不同类型的。

2024-01-10 13:54:38 512

原创 【QT】发生的运行时错误汇总

错误原因:QObject是可重入的,它的大多数非GUI子类,例如QTimer, QTcpSocket, QUdpSocket and QProcess都是可重入的,使得这些类可以同时用于多线程。需要注意的是,这些类设计为从一个单一的线程创建和使用的,在一个线程创建对象,而从另外一个线程调用对象的函数并不能保证行得通。本例中成员变量QTimer是在主线程创建对象时创建的,但是是在run函数中调用,run函数运行在另一个线程中,所以提示错误。这个错误说明程序中有野指针,断点以下很容易找出错误。

2024-01-03 17:13:59 627

原创 【QT】return 和 break 是 C++ 中两个不同的关键字,它们在程序中有不同的用途。

【代码】【QT】return 和 break 是 C++ 中两个不同的关键字,它们在程序中有不同的用途。

2024-01-03 16:12:21 541

原创 【QT】中常见的信号槽使用错误汇总

/ 正确示例 QObject::connect(sender, SIGNAL(someSignal()), receiver, SLOT(slotInDifferentThread()), Qt::QueuedConnection);// 使用Qt::QueuedConnection来处理跨线程连接。// 未处理跨线程连接。// 错误示例 QObject::connect(button, SIGNAL(clicked()), this, SLOT(showMessage()));

2024-01-03 15:47:19 645

原创 【QT】QString类型中,Empty和NULL有什么区别在qt里,对比C#

两者效果是一样的,都会创建一个不包含任何字符的空字符串。在实际使用中,使用默认构造函数更为常见。对象可能是空字符串,即包含零个字符,但它不是一个空指针。在 Qt 中,字符串不是通过指针来表示的,因此不存在与 C# 中的。如果需要检查指针是否为空,可以使用 C++ 中的。方法来检查字符串是否为空,而不是使用。总体而言,要检查字符串是否为空,应使用。在 Qt 的字符串处理中,通常使用。用于检查字符串是否为空。方法来检查字符串是否为空。在 Qt 中,表示一个空的。来确定字符串是否为空。

2024-01-03 15:29:10 813

原创 【QT】线程模型、事件机制、信号槽机制 讲解

信号槽机制是 Qt 中一种用于对象间通信的机制,它通过信号(signal)和槽(slot)的连接实现。这种机制允许一个对象(信号发射者)在特定的情况下发射信号,而另一个对象(槽接收者)则通过连接到这个信号的槽函数来接收并处理这个信号。在 Qt 中,事件是由对象发出的信号,其他对象通过槽函数来处理这些信号。否则,事件将传递给事件接收者的父对象,直至到达顶层父对象或者某个对象明确地处理了该事件。Qt 的事件机制是一种基于事件驱动的编程模型,它用于处理用户输入、定时器事件、系统事件等。类的对象通常是事件接收者。

2024-01-02 15:19:00 1203

原创 【GIT】git describe \git rebase

感受:https://learngitbranching.js.org/?locale=zh_CN 其中过的多次rebase关卡可以让你很好的理解rebase的使用。解释:git rebase 是 Git 中一个强大而灵活的命令,用于整理和修改提交历史。它允许你将一系列提交应用到另一个分支上,或者重写历史以改善提交的结构。git rebase的使用。

2023-12-28 21:38:25 358

原创 【QT】qt的智能指针

std::shared_ptr:使用引用计数,每一个shared_ptr的拷贝都指向相同的内存,每次拷贝都会触发引用计数+1,每次生命周期结束析构的时候引用计数-1,在最后一个shared_ptr析构的时候,内存才会释放。std::weak_ptr:用来监视shared_ptr的生命周期,它不管理shared_ptr内部的指针,它的拷贝析构都不会影响引用计数,纯粹是作为一个旁观者监视shared_ptr中管理的资源是否存在,可以用来返回this指针和解决循环引用问题。

2023-12-28 14:26:02 1283

原创 【QT】QList<T>list 为例,移动赋值(Move Assignment)和拷贝赋值(Copy Assignment)

移动赋值(Move Assignment)和拷贝赋值(Copy Assignment)是关于对象在赋值操作中如何处理资源所有权的两个不同的概念。

2023-12-28 10:52:40 983

原创 【QT】qt中多线程的使用

目标类继承QThread 覆写虚函数function run()qt中对应的多线程的使用举例。

2023-12-26 17:11:01 720

原创 【QT】单例模式,Q_GLOBAL_STATIC 宏的使用和使用静态成员函数,eg:{简单的日志记录器}

简单的日志记录器为例。创建一个Logger类,该类负责记录应用程序的日志消息。

2023-12-26 16:44:37 754

原创 【C#】C#中System.Timers.Timer定时触发事件的计时器类,运用

设置定时器属性: 设置定时器的属性,主要包括 Interval(触发事件的时间间隔)和 AutoReset(指定是否重复触发事件)。创建 Timer 实例: 使用 new System.Timers.Timer() 创建一个新的定时器实例。System.Timers.Timer 类用于创建定时器,它可以在指定的时间间隔内触发事件。订阅 Elapsed 事件: 使用 Elapsed 事件来定义在时间间隔到达时执行的操作。停止定时器(如果需要): 可以使用 Stop 方法停止定时器。

2023-12-26 10:33:50 939

原创 【QT】C#中System.Timers.Timer定时触发事件的计时器类,qt与之对应的QTimer类的使用举例

一个桌面应用程序,该应用程序需要定期更新一些数据,以确保用户始终看到最新的信息。

2023-12-26 10:14:31 560

原创 【C#】关于一个用于定时触发事件的计时器类System.Timers.Timer的使用,eg:{定期从远程服务器获取数据}

System.Timers.Timer: 这是 .NET Framework 中的一个计时器类,用于在指定的时间间隔内触发事件。它通常用于执行周期性任务。

2023-12-25 17:17:32 426

原创 【C#】关于事件的使用ii,eg:{婚礼策划公司的组织者}

事件的用法: 你创建了一个婚礼策划事件,并邀请了音乐师、花店、摄影师等作为订阅者。当婚礼日期临近时,你触发婚礼策划事件,所有订阅者会按照自己的职责做好准备。场景: 假设你是一家婚礼策划公司的组织者,你需要安排婚礼的各个方面,如音乐、鲜花、照片等。

2023-12-25 15:15:47 401

原创 【C#】关于委托的使用, eg: {订单系统}

委托是一个类型,代表一个方法的引用。它允许将方法作为参数传递,存储对方法的引用,并在以后调用该方法。

2023-12-25 15:06:23 410

原创 【C#】关于事件的使用,eg:{简单的温度监控系统}

这个例子模拟了一个简单的温度监控系统,多个监控器通过订阅传感器的事件来获取温度信息,并且可以随时添加或移除事件处理程序。这种设计模式使得系统更加灵活,新的监控器可以轻松地添加到系统中。TemperatureMonitor 类是一个温度监控器,它订阅了 TemperatureChanged 事件,当事件触发时,输出变化的温度信息。主程序创建了一个温度传感器和两个温度监控器,并演示了添加和移除多个事件处理程序的过程。前景提示:假设我们有一个简单的温度监控系统,其中一个温度。下面是一个使用事件的实际例子。

2023-12-23 11:44:46 375

原创 【QT】关于Lambda 表达式的引用捕获和值捕获

符号表示通过引用捕获外部作用域中的变量。Lambda 表达式内部对这些变量的修改会影响到外部的实际变量。这是一种可以修改外部变量的捕获方式。= 符号表示通过值捕获外部作用域中的变量。Lambda 表达式内部对这些变量的修改不会影响到外部的实际变量。这是一种只读方式的捕获方式。

2023-12-19 16:46:03 449

原创 【C++】C++中类的成员访问修饰符 private 和protect的区别和使用

private: 在类的成员列表中使用 private 关键字表示该成员对外部是不可见的,只有在类的内部可以访问。private 成员对于类的用户(类的外部代码)是隐藏的,只有类的成员函数可以直接访问 private 成员。protected: 在类的成员列表中使用 protected 关键字表示该成员对于类的外部是不可见的,但对于派生类是可见的。protected 成员对于类的用户(类的外部代码)是隐藏的,但可以在派生类中访问。protected 成员对于类的外部是不可见的,但对于派生类是可见的。

2023-12-09 11:01:26 510 1

原创 【QT】基于qtcreator的串口通信,注意事项

问题记录:【QT】基于qtcreator的串口通信,注意事项,往串口发送数据时,在debug下可能存在发送下去,但是没有回信的结果。现象②:在debug模式下,发送十六进制内容,下位机无回应,宕机错觉。现象①:直接运行 有回应。

2023-11-22 16:47:51 397 1

原创 在qt环境下,可执行文件进行打包的过程

以下,将可执行文件进行打包的过程。

2023-11-02 14:45:48 60

原创 DevExpress.XtraCharts.XYDiagram的用法,含一个经典的例子

这个例子展示了如何使用 DevExpress 图表控件库创建一个简单的散点图。DevExpress 图表控件库提供了广泛的功能,可用于创建各种类型的图表,从基本的散点图到复杂的图表类型。是 DevExpress 图表控件库中用于创建 XY 坐标系图表的类。它提供了创建和配置 XY 坐标系图表的功能。最后,我们将图表控件添加到窗体,并设置其布局以占据整个窗体。在这个例子中,我们创建了一个简单的 Windows 窗体应用程序,并使用。控件创建一个图表控件。然后,我们创建了一个。实例,将其分配给图表控件的。

2023-10-19 14:34:42 269

原创 this.Invoke((EventHandler)(delegate { }); 简解,(有误解恳亲指出

如果在非UI线程上直接访问或修改 UI 元素,可能会导致线程竞争条件和UI异常。这样,我们可以在非UI线程中触发 UI 更新,而不会导致线程冲突或 UI 错误。假设您有一个 Windows 窗体应用程序,其中有一个按钮,当用户点击按钮时,您需要在 UI 线程上执行某些操作,例如更新界面上的文本框。:这是一个匿名委托(delegate)的声明,它是一个没有名称的方法,可以在其中编写一段代码块。方法是一个控件(通常是窗体)的方法,它允许您在控件的主线程上执行指定的操作。在上面的示例中,当用户单击按钮时,

2023-10-17 16:40:14 708

原创 在qt环境下,可执行文件生成过程

⑤ windeployqt发布,windeployqt 是 Qt 提供的 Windows 平台打包工具,它能自己找到 .exe 可执行文件需要的所有动态链接库,并将它们拷贝到当前文件夹中。⑦ 执行 “windeployqt Seriaxxxxad_v2.2.exe” 命令,换成自己的.exe名字。按以上步骤发布的软件,即使在对方没有qt环境下的生产电脑中也可正常运行。注:生成的文件名可更改,例④ 将生成的exe新建文件夹。③ 构建运行后,在构建目录中找到生成的exe文件。① 电脑有qt运行环境。

2023-10-17 16:23:00 220

原创 【C#】关于FileStream类、StreamWriter类别简解,举例

在这个代码中,fs 是一个 FileStream 类型的对象,用于创建或覆盖文件并打开文件流。在这个代码中,sw 是一个 StreamWriter 类型的对象,用于将文本数据写入文件。sw.Flush():Flush 方法用于清空 StreamWriter 的缓冲区,确保所有待写入的数据都被立即写入文件。sw.Close():Close 方法用于关闭 StreamWriter,结束文件写入操作。fs.Close():Close 方法用于关闭 FileStream,结束文件流的操作。

2023-10-17 10:53:11 613

原创 关于C#事件声明举例

是一个事件声明,用于定义一个事件,允许类外部的代码注册事件处理程序以在事件发生时执行特定的操作。举例: Windows Forms 应用程序中处理按钮的点击事件。

2023-10-16 17:10:48 50 1

原创 在C#中关于对线程的理解(含委托

ThreadStart 委托是一个委托类型,它接受一个无参数无返回值的方法,这个方法通常用于线程的执行体。它引用了 parameterInterface.downParameterLoadData 方法,因为该方法没有参数和返回值,正好符合 ThreadStart 的要求。parameterInterface.downParameterLoadData:这是指定要在新线程中执行的方法。parameterInterface 是一个对象,而 downParameterLoadData 是该对象的一个方法。

2023-10-12 16:43:38 32

基于多态的企业职工系统资料.zip

基于多态的企业职工系统资料

2024-01-29

C++实战练手-通讯录管理系统-源码

【C++】实战练手--通讯录管理系统 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: * 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 * 显示联系人:显示通讯录中所有联系人信息 * 删除联系人:按照姓名进行删除指定联系人 * 查找联系人:按照姓名查看指定联系人信息 * 修改联系人:按照姓名重新修改指定联系人 * 清空联系人:清空通讯录中所有信息 * 退出通讯录:退出当前使用的通讯录

2024-01-26

QSerialport多线程方法

QSerialport多线程方法 使用Qt也已经有一段时间了,虽然使用过继承QThread重写run函数,以及继承QObject然后使用MoveToThread两种方法实现多线程,但是在QSerialPort的使用过程中,两种方法都存在一定的问题。 典型的问题: QObject: Cannot create children for a parent that is in a different thread. QObject::startTimer: Timers cannot be started from another thread 原因:在主线程中创建了QSerialPort对象在子线程中调用,或者在子线程中创建然后在主线程中调用了。 对于继承QThread重写run函数的情况,往往容易在run外部定义QSerialport *port = new QSerialport()对象,然后在run中调用port->readAll()等函数,然而根据QThread的特性,只有run函数才运行在新的子线程中,所以这里就跨线程调用了 QSerialport对象,会出现上述报错。

2024-01-08

关于整合SSM的思维导图

这是详情对于之前文章https://blog.csdn.net/weixin_44939430/article/details/105702376?spm=1001.2014.3001.5501 的一个整体文件描述

2022-01-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除