- 博客(28)
- 收藏
- 关注
原创 QT线程使用方法
在Qt中,执行耗时操作的同时更新UI,需要确保耗时操作不会在GUI线程中进行,以避免阻塞界面。将对象移至新线程,通常用于那些不适合通过信号和槽机制处理的复杂交互,或者当你需要对对象的生命周期进行更精细控制时。:在子线程类中定义一个信号,用于在耗时操作完成后通知主线程。:在耗时操作对象中定义一个信号,用于在操作完成后通知主线程。槽函数,该函数在主线程中被调用,因此可以安全地更新UI。:在槽函数中,根据从耗时操作对象接收的数据更新UI。:在耗时操作对象中创建一个函数,用于执行耗时操作。
2024-05-14 15:11:57
520
原创 全局变量static关键字&extern关键字
将全局变量的定义集中到一个单独的源文件和头文件中,可以实现高内聚,同时通过头文件声明的方式可以实现松耦合,其他模块只需要包含头文件即可使用全局变量,不需要关心具体的实现细节。将全局变量的定义集中到一个单独的源文件和头文件中,可以提高代码的可维护性和可读性。头文件中只需要声明全局变量,而具体的定义和初始化则在源文件中进行,这样可以更好地隐藏实现细节,同时确保全局变量的唯一性。因此,将全局变量定义集中到一个单独的源文件和头文件中是一种合理的做法,既符合高内聚松耦合的设计原则,也有利于代码的维护和管理。
2024-04-17 09:32:51
295
原创 moc 简介
Qt 程序编译之前,先使用 moc 分析 C++ 源文件,若在头文件中包含了宏 Q_OBJECT, 则会生成另外一个包含了 Q_OBJECT 宏实现代码的 C++ 源文件,这个新文件的名字是 在原文件名之前加上 moc_ 构成。这个新文件同样会进入编译系统,最终被链接到二进制 代码中去,因此我们在 Qt 构建后的文件夹中,见到 moc_*.o 和 moc_*.cpp 的文件,就是 由 moc 生成的。注意:新文件不会“替换”掉旧的文件,而是与原文件一起编译,另外, moc 的执行是在预处理器之前。
2024-04-08 09:03:02
447
原创 QT在类中包含已经定好的线程并将其设置为友元函数线程
通过将已经定义好的线程对象设置为友元函数线程,可以让线程对象直接访问类的私有成员变量和方法,而无需通过外部接口进行通信。这样可以简化类与线程之间的交互,提高代码的可维护性和可读性。在Qt中,可以将已经定义好的线程对象包含在类中,并将其设置为友元函数线程,这样可以让该线程访问类的私有成员变量和方法,实现类与线程的紧密结合。方法,在该方法中可以直接访问类的私有成员变量和方法。类中直接调用线程对象的方法,实现了类与线程的紧密结合。对象,并将其设置为友元函数线程,这样就可以在。
2024-03-29 08:44:51
207
原创 VS+QT异常合集-持续更新
VS项目里出现"xxxx.vcxproj”配置“Debug|x64”的 Designtime 生成失败。IntelliSense 可能不可用.设置环境变量 TRACEDESIGNTIME = true 并重启 Visual Studio 以进行调查。是qrc对应的文件没找到引起的,重新添加qrc资源文件即可。
2024-03-27 20:30:48
395
原创 QTextStream 、QDataStream 、Tcp
将数据从网络中读取到缓冲区中,或将数据从缓冲区写入到网络中,以实现数据的传输和通信。这两个类提供了高级的接口,简化了数据的读写操作,同时提供了数据类型的序列化和反序列化功能,方便数据的处理和传输。是用于在 TCP 通信中进行数据读写的类,它们提供了方便的接口来处理文本数据和二进制数据。在 TCP 通信中,可以利用。
2024-03-27 08:53:39
279
原创 Tcp中为什么要用QByteArray 而不用QString
是以 Unicode 字符为单位进行存储的,当数据中包含 NULL 字符('\0')时可能会导致字符串截断。字符串操作可能涉及字符编码转换和内存分配等开销,而对于二进制数据来说,直接操作字节可以提高性能。TCP 通信中传输的数据可能是二进制数据,而不仅仅是文本数据。在 TCP 通信中,数据是以字节流的形式进行传输的,因此使用。可以更直接地处理字节数据,避免不必要的转换和复杂性。更适合处理二进制数据,可以直接存储和操作字节序列。可以存储任意字节序列,不受 NULL 字符的影响。
2024-03-27 08:49:21
216
原创 TCP通讯中心跳机制用法
在实际的TCP通讯中,可以通过定时发送心跳包来确保连接的持续性。如果服务端在一定时间内未收到客户端的心跳包,可以主动断开连接或者尝试重新建立连接。心跳机制是一种保持TCP连接活跃的方法,通过定期发送小型数据包(心跳包)来确认连接的状态。如果客户端在一段时间内未收到心跳包,可以认为连接出现问题,进而采取相应的处理措施,比如重新建立连接或进行其他操作。在QT中,你可以通过定时器来实现心跳机制,定时发送心跳包并监测连接状态,以确保连接的稳定性和可靠性。
2024-03-20 16:48:12
282
原创 标识符在线程和函数中的意义
在函数中增加bool判断标识符的意义是为了根据不同的条件来执行不同的逻辑。通过bool标识符的取值,可以在函数内部进行条件判断,从而选择性地执行一部分代码或者另一部分代码。这样可以在函数内部实现逻辑的分支和控制流,提高代码的灵活性和可维护性。在线程中增加标识符的意义是为了在多线程环境下对不同线程进行标识和区分,以便更好地管理和控制线程的执行。
2024-03-20 08:45:53
92
1
原创 变量的作用域和生命周期:
类型,任何尝试修改它的操作都会导致编译错误。这样就确保了全局常量的值在程序运行期间不会被更改。函数中,我们尝试修改全局常量的值,但由于它被声明为。被声明为全局常量,其值被设置为。
2024-03-18 16:54:06
366
1
原创 QTableView控件设置
1.保证当前要上移或下移行中的控件在行上下移动过程中控件跟随当前行移动,被调换的行对应的控件也要跟随被调换的行移动且不会消失,其次保证当前要上移或下移行中的控件在行上下移动过程中控件跟随当前行移动,这个不是鼠标拖动而是点击上移按钮对应选中行上移,点击下移按钮对应选行中行下移。4.第二列委托checkbox控件,当该控件勾选后则控件所在行的第三列Qcombox控件/第四列Qlineedit控件的处于激活状态,当未勾选则第三列Qcombox控件/第四列Qlineedit控件的处于未激活状态;
2024-02-02 16:49:05
458
原创 QTreeView读取XML文件实现顶层条目和子条目显示,并动态获取
【代码】QTreeView读取XML文件实现顶层条目和子条目显示,并动态获取。
2024-01-31 22:28:16
570
原创 VS快捷键
各种快捷方式Ctrl+k +Ctrl+f 自动缩进Ctrl+k +Ctrl+c 注释Ctrl+k +Ctrl+u 快速注释Ctrl+k+c快速取消注释Ctrl+k+u
2024-01-31 16:22:04
331
原创 QT调用DLL
隐式调用:同时有库文件(.lib),头文件(.h)与动态链接库(.dll)。(更加简便推荐使用)显式调用:没有导入库文件(.lib),只有头文件(.h)与动态链接库(.dll)。
2024-01-31 09:02:12
399
原创 Qt工程】error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const *(补充)
处理方式:新建项目重新复制,将VStool路径改为QT5.14.5目录下的bin目录,并且在QtProjectSettings中Qt installation将设置为 5.14.5_msvc2017_64。当前项目创建使用版本:VS设置路径vstool设置为Qt5.9.9;设置项目选择5.9.9 msvc2017。
2023-12-19 21:32:23
529
原创 【Qt工程】error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const *
利用Qt编程时,写好.h、.cpp文件并第一次编译之后,若.h文件中定义类时没有添加Q_OBJECT宏以及信号函数、槽函数,VS编译命令中就没有moc命令,就不会调用Qt的moc工具以生成moc_*.cpp文件;在visual studio中,如果是接下来添加的Q_OBJECT宏、信号函数、槽函数等,由于之前编译过程中没有生成moc文件,或者该moc文件已被删除,那么新添加后,visual studio就不会再生成moc文件了,这就导致visual studio在链接时出现以上情况的Error。
2023-12-18 14:01:38
2301
1
原创 qt中控件边角设置呈圆弧状
比如我这里宽高大小为100,那么border-radius就是50px。设置为宽高值的一半,其他设置不变。2.在代码源文件设置中;1.在Qt中直接设置;
2023-08-13 14:29:33
3098
1
原创 VS+QT发布release版本
按Enter后 输入 windeployqt C:\Desktop\release(这个是你在第2步编译的那3个文件的release的路径)Win+R(命令行)后输入cmd,输入 cd /d D:\QT\QT5.9.9\........\bin(这个是编译器路径)可以在命令后面加上“–release”,强制生成release的依赖库。附:这是个人发布Windows版本的打包软件。
2023-08-03 18:03:04
953
原创 VS+Qt 中Charts插件使用前环境配置以及以及一些问题
2.库目录: 选择对应编译器版本下的lib路径。中添加QtCharts的附加依赖项,添加如下字段。1.包含目录:选择Qt路径下对于编译器版本的。文件下的QtCharts路径;1.附加依赖项: 项目属性。三 、其他使用及问题点。
2023-05-25 20:54:44
671
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人