- 博客(388)
- 资源 (36)
- 收藏
- 关注
原创 Qt5/6使用SqlServer用户连接操作SqlServer数据库
我在用的时候,一开始只能用Windows身份登录。可以直接右键创建,然后填写字段内容即可。所以直接下载ssms,
2024-06-08 19:58:37
423
原创 Qt程序如何在Release模式下进行断点调试
有些时候,因为某些工程pro文件设置了debug和Release版本的原因,导致在编译运行的时候,程序会自动生成带d后缀的一些库文件,进行调试。debug模式下我们打断点进行调试,大家都知道。但是Release模式下,如果你直接Ctrl + R运行,肯定是无法断点调试的。然后使用F5调试运行,就可以使用断点调试了。
2024-01-19 00:05:31
1061
原创 Qt GraphicsView中如何判断鼠标按下的点是否在已绘制的图元上
在`CustomItem`类中,重写了`boundingRect()`函数来定义图元的边界框,重写了`paint()`函数来绘制图元,以及重写了`contains()`函数来判断鼠标按下的点是否在图元的边界框内部。在Qt中,通过重写`QGraphicsItem`的`contains()`函数来判断鼠标按下的点是否在已绘制的图元上。在`main`函数中,我们创建了一个`QGraphicsScene`并添加了`CustomItem`图元,然后使用`QGraphicsView`来显示场景。
2024-01-09 16:41:15
751
原创 cmake常用设置命令及参数大全
6. target_link_libraries(target_name library_names):将目标与指定的库文件链接。4. add_executable(target_name source_files):添加一个可执行文件。14. set(CMAKE_EXPORT_COMPILE_COMMANDS ON):生成编译命令文件。5. add_library(target_name source_files):添加一个库文件。3. set(variable_name value):设置变量的值。
2023-12-12 00:18:39
779
原创 cmake语法target_link_libraries private,public,interface解读
`${PDAL_ARBITER_LIB_NAME}`:PDAL Arbitrer 库的名称。- `${PDAL_KAZHDAN_LIB_NAME}`:PDAL Kazhdan 库的名称。- `${PDAL_LAZPERF_LIB_NAME}`:PDAL Lazperf 库的名称。- `${CMAKE_DL_LIBS}`:CMake 提供的用于动态加载库文件的库文件。- `${PDAL_LEPCC_LIB_NAME}`:PDAL Lepcc 库的名称。
2023-11-25 20:17:17
805
原创 微信小程序中设置按钮上的文字大小,换行或溢出
在上述代码中,通过设置按钮的样式类 `.button-style` 的 `font-size` 属性为 `16px`,可以将按钮上的文字大小设置为 16 像素。在微信小程序中,可以通过设置按钮上文字的 `font-size` 样式属性来调整文字的大小。可以使用 `white-space` 和 `overflow` 属性来处理这些情况。/* 设置文字大小为 16px */出现换行或溢出的情况。
2023-10-21 10:15:17
1527
原创 编写FastDDS发布端和订阅端
/ 创建DomainParticipant eprosima::fastdds::dds::DomainParticipant* participant =// 创建DomainParticipant eprosima::fastdds::dds::DomainParticipant* participant =// 定义消息类型支持class HelloWorldType : public eprosima::fastdds::dds::TopicDataType{// 创建Topic。
2023-10-11 19:50:25
267
原创 C++基类指针转换为子类指针注意事项
/ 创建派生类对象,并将其赋值给基类指针Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);// 将基类指针转换为派生类指针。因此,在进行dynamic_cast转换后,最好使用条件语句来检查转换的结果,以避免使用空指针进行操作。此外,dynamic_cast只能用于指针或引用类型的转换,不能用于转换对象本身。// 转换成功,可以使用派生类指针进行操作 // ...// 转换失败,基类指针不指向派生类对象 // ...
2023-10-10 17:23:12
430
原创 分布式系统数据通信DDS开发库和Mqtt开发库 有什么区别
1. 数据传输方式:DDS使用点对点的方式进行数据传输,而MQTT使用发布/订阅的方式进行数据传输。在DDS中,数据由发送者直接发送给接收者,而在MQTT中,数据由发布者发布到主题(Topic),然后由订阅者订阅主题来接收数据。3. 数据传输可靠性:DDS的数据传输更可靠,因为它使用了数据重传和数据丢失检测等机制来确保数据传输的可靠性。2. 数据传输效率:DDS的数据传输效率更高,因为它使用了数据共享和本地缓存等技术来提高数据传输的效率。MQTT主要用于物联网、移动设备等需要低带宽、低功耗的场景中。
2023-10-10 09:42:23
397
原创 qt qml中listview出现卡顿情况时的常用处理方法
4. 使用模型的onCountChanged信号:如果数据模型在更新时需要进行复杂的计算,可以使用模型的onCountChanged信号,将计算过程放到后台线程中,避免阻塞主线程。3. 使用较小的itemDelegate:尽量减少itemDelegate的复杂度,例如使用较小的图片或者使用ListView的内置的默认itemDelegate。6. 优化数据源:如果使用的是自定义的数据源模型,可以优化模型中的数据处理方法,尽量减少不必要的计算。
2023-10-06 22:54:11
809
原创 C++类型转换详细说明
然后,我们使用重新解释转换将一个整数转换为指针类型,并输出指针的值。最后,我们使用常量转换将一个常量指针转换为非常量指针,并修改指针指向的值。3. 重新解释转换(reinterpret_cast):用于不同类型之间的位模式转换,例如将一个整数转换为指针类型。4. 常量转换(const_cast):用于去除表达式中的常量属性,例如将一个常量指针转换为非常量指针。1. 静态转换(static_cast):用于基本类型之间的转换,也可以用于类层次结构中的向上转换和向下转换。静态转换在编译时进行类型检查。
2023-09-25 10:38:55
106
原创 qt qml RadioButton如何设置字体颜色,style提示找不到怎么办?
在这个例子中,我们创建了一个RadioButton,并设置了其文本为"Radio Button"。通过设置RadioButton的label属性为Text元素,我们可以对文本进行更多的样式设置。通过设置Text元素的color属性,我们可以设置文本的字体颜色。在这里,我们将字体颜色设置为红色。所以我们可以按照上面的代码,使用Controls 1.4的RadioButton组件。qt QML中设置RadioButton的字体颜色,可以使用RadioButton的label属性来设置文本的样式。
2023-09-12 13:29:28
931
原创 qt中setFixedSize和resize的区别,半悬浮效果的实现
1. `setFixedSize()`方法会将窗口的大小固定为指定的宽度和高度,不允许用户手动调整窗口大小。这个方法通常用于需要固定大小的窗口,例如自定义的对话框或固定大小的小部件。那么当你使用resize的时候,如果背景widget的大小固定了,而这上面的子控件大小你没有固定,即用的是resize,而不是setfixedsize,那么子控件不受背景widget的控制,所以就会出现子控件能够溢出背景widget的现象。这个方法通常用于可调整大小的窗口,例如主窗口或应用程序窗口。
2023-09-02 12:04:41
2195
原创 Qt qml中Row组件内的边距如何设置
在这个示例中,我们使用Row组件创建了一个横向布局,通过设置spacing属性来定义按钮之间的间距。然后,我们在每个按钮中使用leftPadding和rightPadding属性来定义左右边距的大小。qml中Row组件,和RowLayout组件,两者的用法是有区别的。我们可以使用边距属性padding来设置边距。
2023-08-29 13:16:08
455
原创 C++模板元编程入门案例
当`N`不为0时,`Factorial::value`的值等于`N`乘以`Factorial::value`。当`N`为0时,特化的`Factorial`结构体的`value`值被定义为1,作为递归的终止条件。示例中,我们定义了一个模板结构体`Factorial`,它接受一个整数模板参数`N`。在`main`函数中,我们使用`constexpr`关键字定义了一个编译时常量`num`,并打印出`Factorial::value`的值,即5的阶乘。
2023-08-15 10:12:58
148
原创 Qt OpenGL基础入门,怎样将像素绘制到屏幕上,附代码例子
请确保在CMakeLists.txt文件中的`add_executable`命令中包含您的源文件,例如`main.cpp`。然后,使用`target_link_libraries`命令将OpenGL库链接到您的项目中。通过这样配置CMakeLists.txt文件,CMake将能够找到并链接OpenGL库,以便您的项目能够使用OpenGL功能。要在CMake中添加OpenGL库路径,您可以使用`find_package`命令来查找OpenGL库,OpenGL最近比较火,我们也来一起学习学习吧。
2023-08-14 10:20:27
222
原创 qt lamda表达式及捕获变量列表符号说明及示例
在上面的例子中,Lambda表达式lambda1以值传递的方式捕获了变量x和y,而lambda2以引用传递的方式捕获了变量x和y。其中,捕获列表(capture list)可以用来捕获外部变量,参数列表用于指定函数的参数,返回类型用于指定函数的返回类型,函数体则是具体的实现。3. [&]:以引用传递的方式捕获所有的外部变量,使Lambda表达式内部可以访问外部变量的值,并且可以修改它们。2. [=]:以值传递的方式捕获所有的外部变量,使Lambda表达式内部可以访问外部变量的值,但不能修改它们。
2023-08-10 14:20:32
509
原创 qt qml中各种Layout之间是如何对齐的?
然后,在下一个RowLayout中使用anchors属性,将其顶部锚定到上方ColumnLayout的底部。同时,通过设置y偏移量来实现略低一些的位置。要实现将下一个RowLayout对齐到上方的ColumnLayout的底部,并添加一些间距,可以使用anchors属性和布局元素的spacing属性。这样,下一个RowLayout就会相对于上方ColumnLayout的底部略低一些,并添加了指定的间隔。qml中下一个RowLayout如何对齐顶部到上方的ColumnLayout的底部略低一些间隔的位置?
2023-08-08 10:19:30
757
原创 Qt小妙招:如何在可执行文件生成后,在pro文件中添加其他命令操作?
场景1:我的可执行文件设置生成路径为某个最终目录的bin目录下,当我要修改某些config.ini或者xxx.json,或者一些qss,css文件的时候,我想直接在构建的时候,Qtcreator帮我直接拷贝过去,而不需要我总是执行命令去复制。`$$PWD/source_file`是源文件的路径,`$$OUT_PWD/destination_file`是目标文件的路径。在Qt的.pro文件中,使用QMAKE_POST_LINK变量来在生成可执行文件后执行一条复制文件的命令操作。其他场景大家自己想象。
2023-07-26 14:55:13
650
原创 Linux下C++ STL获取Mac地址
注意,这个代码假设你的网络接口是eth0。如果你的网络接口不是eth0,你需要相应地更改文件路径。或者直接用QtCreator创建C++项目。
2023-07-26 09:58:50
860
原创 Qt中字符串比较的时候如何忽略大小写?
当我要比较电脑的MAC地址的时候,出现了使用ifconfig查看到的地址,和Qt使用QNetInterface获取的MAC地址有着大小写的区别。可以使用QString类的compare()函数,并将第三个参数设置为Qt::CaseInsensitive。可以使用QString类的toLower()函数来将字符串转换为小写形式,然后再进行比较。
2023-07-26 09:17:23
730
原创 Qt应用程序性能优化总结
6. 使用Qt的绘图优化技巧:在进行图形绘制时,可以使用Qt的一些绘图优化技巧来提高性能。5. 使用Qt的多线程机制:对于需要进行耗时操作的任务,可以考虑使用Qt的多线程机制来提高性能。4. 减少信号与槽的连接:信号与槽机制是Qt的核心特性之一,但过多的信号与槽连接会导致性能下降。7. 使用Qt的缓存机制:在处理大量数据时,可以使用Qt的缓存机制来优化性能。9. 使用Qt的性能工具:Qt提供了一些性能工具,如Qt Creator的CPU和内存分析器,可以帮助发现和解决性能瓶颈。
2023-07-12 09:41:04
2101
原创 Qt中QProcess的全局对象可以重复使用吗?
但是需要注意的是,在每次使用QProcess对象执行外部程序之前,您应该确保之前的执行已经完成或已经终止。可以通过调用`waitForFinished()`函数来等待之前的执行完成,或者调用`kill()`函数来终止之前的执行。实际上,我看到有些人在写某些命令的执行时,经常重复使用。另外,如果您要执行多个外部程序,并且希望并行执行它们,可以考虑使用多个QProcess对象,每个对象负责执行一个外部程序。总结起来,QProcess对象是可以重复使用的,但在每次使用之前,需要确保之前的执行已经完成或已经终止。
2023-07-12 09:35:14
541
原创 Qt QSqlTableModel获取数据库总的行数,当数据库行数超过10000行,怎么办
前面提到过,使用QSqlTableModel的canFetchMore()来获取超过256行的数据库数据行数,但是中间使用过程中,发现这个会导致界面卡顿。为了解决这个问题,可以使用QSqlQuery来执行查询并获取总行数。注意里面的QSqlQuery的定义,可以没有database参数,定义的时候会选择默认的数据库database,即你之前已经连接好的QSqlDatabase。当数据量过大,且处于数据通信过程中的时候,譬如,can通信,串口,TCP网络之类的时候,我们需要直接查询数据库获取总行数。
2023-07-10 18:22:44
901
原创 Excel表格中给某一列中的单元格设置下拉选项
6. 在“来源”输入框中,输入下拉选项的值,可以是一个范围、一个单元格区域或手动输入的值。例如,如果要设置下拉选项为"选项1"、"选项2"、"选项3",则可以在来源输入框中输入"选项1,选项2,选项3"。我想要在Excel表格中,设置某一列的单元格可以直接选择下拉列表中的选项,而不需要我手动输入固定的那些文字,数字等。3. 在“数据”选项卡中,找到“数据工具”部分,点击“数据验证”按钮。4. 在弹出的“数据验证”对话框中,选择“设置”选项卡。5. 在“允许”下拉菜单中,选择“列表”。注意逗号是英文的逗号。
2023-07-06 13:38:44
4168
原创 解决Qt字体问题:QFontDatabase: Cannot find font directory xx/lib/fonts
1.直接在main函数里设置app的整体字体库.这个错误提示比较明显的就是字体库缺失。
2023-07-05 14:31:34
1764
原创 C++/Qt中异常处理try-catch语句的使用方式及场景案例
然而,使用省略号来捕获异常是不推荐的,因为它会捕获所有类型的异常,包括标准异常和非标准异常,导致代码的可读性和调试能力降低。最佳实践是将具体的异常类型作为catch块的参数,以便更精确地处理不同类型的异常。如果在这些代码执行过程中发生了异常,程序会立即跳转到最近的catch块,并执行相应的异常处理代码。catch块中的参数是异常对象的引用,可以用来访问异常的信息。总之,try-catch语句适用于任何可能会抛出异常的场景,可以提供对异常情况的处理和恢复机制,保证程序的稳定性和可靠性。// 读取或写入文件。
2023-07-04 10:08:49
4889
原创 本地rm删除文件后,如何用git同步回来这个文件
某一次,我看工程下有个文件代码很乱,被我搞得很不爽,于是我就删除了它,结果,我想用git同步之前的一份这个文件回来的时候,犯愁了。git branch ,git branch -a , git branch -v 命令都可以查看,当前分支显示为绿色星号标注。命令手动删除了文件,那么这个文件就不再存在于您的本地存储库中,也就无法通过 Git 同步回来了。如果我们之前创建了自己的分支,可以用git branch查看所有的分支。但是,如果您已经将这个文件提交到了远程存储库中,可以使用。这里我们来学习学习。
2023-06-13 14:07:39
1237
原创 解决Ubuntu20arm系统下执行Qt程序Could not initialize GLX
看到GLX的问题,其实第一时间就想到或许是opengl的某些驱动有问题。所以,我们可以直接搜索跟opengl相关的依赖包,开发包dev包。或者执行sudo apt-get install mesa-utils安装opengl的各种驱动。如果还不行,那么你需要安装和qt5相关的opengl包:自行查看选择即可。
2023-06-12 11:45:22
1454
原创 解决Ubuntu18 系统下不兼容软件包存在未满足的依赖关系: libudev-dev : 依赖: libudev1 (= 237-3ubuntu10.57) but is installed
我们需要回答No,让aptitude给出第二个方案,仔细查看第二个方案,一般会建议你降级某个关键的卡壳依赖包,看好了要不要降级,一般不会有升级的情况,因为如果升级就能解决问题,apt直接就可以安装了。因为aptitude会给出解决方案,会自动分析依赖包的合理安装版本,会帮助你分析依赖包出现的安装问题。只要那些阻碍的依赖包问题解决了,那么安装我们需要安装的一般性软件包依赖包的时候,才能够顺利。0 个软件包被升级,新安装 4 个, 2 个被降级, 0 个将被删除, 同时 211 个将不升级。
2023-06-12 11:14:46
1077
原创 QtCreator添加代码统计功能
最后,我们就可以直接点一下,工具---外部----cloc,底下“概要信息”栏目就会出现代码统计的结果了。QtCreator有一个很好用的外部命令功能:在工具下面,有个外部的菜单项,点进入配置一下,就可以实现很多需要操作当前目录,编译目录等各种环境变量下具备操作的功能。Ubuntu上有一个很好用的命令行工具cloc,可以统计各种目录下的代码行数,很是方便,参数就是目录名,需要排除某个目录,就加一个exclude参数。需要说明的是:工作目录的选择,上面有自带的变量,无需自己创造哈。
2023-06-05 17:58:56
1934
原创 解决QT5调用软键盘qvirtualkeyboard时崩溃问题ime_pinyin::MatrixSearch::init_user_dictionary
但是偶尔也会出现问题,譬如,我这边在Arm系统上跑着程序的时候,点击用户编辑框,输入法弹出,但是再次点击密码输入框,连程序都给我崩溃了。只是提示错误:void ime_pinyin::MatrixSearch::init_user_dictionary。首先确保你的Arm版QT库已经编译了软键盘,位置有时候就和lib同级目录,qtvirtualkeyboard。QT5中的软键盘qvirtualkeyboard很好用,很多人开发嵌入式端应用的时候都会用到。此外还有很多其他的输入法字典,像。
2023-06-02 16:17:59
1102
原创 解决win10下双击执行exe程序错误:LoadLibrary failed with error 126
某一次,在使用QT打包后的程序时,双击exe可执行程序,结果出现了“LoadLibrary failed with error 126”的错误。禁用方式:进入我的电脑,设备管理,选择显示适配器,我这里看到有三个显卡,一个是独显的,一个是核显的,一个是远程虚拟的,我禁用了核显,就好了。这个问题出现按网友的说法,是很多年前win10的一个bug,和显卡驱动有关。也和运行环境有关,运行程序的这台win10是新装的系统,而且用的是远程控制。至于其他方式,更新系统啥的,可能有用,但是时间太长,下载太多。
2023-06-02 14:32:14
1318
原创 Qt QGenericPlugin插件使用案例
首先,我们通过QtCreator,创建新的项目,选择C++ library模板,然后,选择Qt Plugin,不是C++ library。我们无需单独再创建接口类,如果你有需要可以继续继承或者另外写一个接口类。Qt插件的编写,有两种方式,一种是直接通过自定义接口类Interface来实现,一种是通过QtCreator自带的插件模板来创建。如果你是自己另外创建的接口类,需要修改一下基类对象调用的create方法那一行即可。案例具体代码放在我的资源里了,免积分的,有需要的自己下载吧。这里我们先来实现第二种。
2023-05-23 11:27:37
513
原创 解决Android TextView文本内容自动换行问题
我的情况是放在GridLayout中,有的人可能是TableLayout,查了查网友的答案,有的设置TextView inputType多行multiline,省略号ellipsesize。后来想着还是使用换行符吧,检测放入的字符串的长度,然后加个换行符进去就行。本来想着用TextView来显示某个版本号,结果版本号异常的长,
2023-05-09 18:21:23
3052
原创 pythonqt/pyside6一键抠图效果实现,附完整代码
另外还要处理的问题有,黑底可以去掉,变为透明背景。3. Scikit-image:基于 Python 的图像处理库,包含多种图像处理算法,可用于图像分割、边缘检测、形态学操作等。1. OpenCV:用于计算机视觉和机器学习应用的开源计算机视觉库,支持 C++、Python 和 Java 等多种编程语言。5. SimpleCV:用于计算机视觉和机器人应用的 Python 库,包含多种计算机视觉算法和图像处理工具。10. Dlib:用于机器学习和计算机视觉的 C++ 库,包含多种图像处理算法和工具。
2023-04-29 07:39:33
1260
原创 解决Windows下QtCreator编译代码时错误:cc1plus.exe: out of memory allocating 65536 bytes
综上所述,增加编译器的线程数通常会导致内存的增加。但是,线程数增加带来的内存增加量并不是固定的,实际增加量取决于编译器的实现、系统硬件等因素。当线程数增加时,因为线程间通信的开销增加,会导致程序的内存使用量增加。随着线程数的增加,内存分配算法的复杂度也会增加,可能需要更多的内存来存储分配器状态。例如,使用迭代替换递归可以减少栈的内存使用。增加线程数将增加线程栈空间的数量,从而增加内存的使用量。在编译一些大的Qt程序代码的时候(其他程序也类似),由于系统里面打开的其他程序多,耗费内存比较大。
2023-04-28 12:40:44
1729
原创 翻翻源码,解决Qt程序问题QLayout: Attempting to add QLayout ““ to xxxx ““, which already has a layout
其他Layout对象如果new的时候指定了父窗口的this作为parent,中间你却在子Widget中setLayout(xxlayout对象),那么Qt就会警告你,父窗口已经有主Layout了,你的代码中还尝试添加一个或多个主Layout,因为这些Layout的this指向了父窗口,但你却用在子窗口上去了。那么结论来了,既然出现错误(警告)之后,Qt框架自身会设置对象的parent为空,也就是说,在我们的代码中,某个地方将layout的parent设置成了别的对象,或是this,或是对象指针。
2023-04-26 19:07:19
196
原创 git提交版本被拒绝时该怎么处理?如何忽略不需要的文件?
问题描述:git版本管理是每一个代码人都需要学习的一项辅助技能。虽然这个东西上网直接可以查找答案。但是查起来也挺费劲的。一堆广告加一堆没用的推荐,还给置顶了,点进去一看,我只想知道1+1=?你非要告诉我1加到100怎么计算。我只想要一条鱼,你非要叫我怎么钓鱼抓鱼,尴尬。所以,记录一下,具体怎么处理git提交版本被拒绝时的问题。一般情况下,被拒绝了,是因为这个当前的代码仓库已经有改动过的文件在上面了,你想直接提交,所以被拒绝了。因为你会覆盖别人或者你自己之前的改动。
2023-04-24 11:38:52
720
Qt5.15 Windows10版本带目录树文件管理器源码
2022-07-14
Qt5.15版2022年4月最新版本图片转文字识别程序源码,带完整类似QQ强大截图功能
2022-04-16
C++课程设计小项目:音乐歌曲管理系统qt5.15工程源码,mysql数据库,供课程设计,C++编程学习,项目设计学习使用
2022-03-31
C语言课程设计小项目:电话簿程序qt5.15工程源码,供课程设计,C语言编程学习,项目设计学习使用
2022-03-31
C++课程设计小项目:士多超市便利店管理系统qt5.15工程源码,供课程设计,C++编程学习,项目设计学习使用。
2022-03-31
C++课程设计小项目:简易C++图书管理系统qt5.15工程源码,供课程设计,C++编程学习,项目设计学习使用。
2022-03-31
C++课程设计小项目:简易C++员工管理系统案例qt5.15工程 供课程设计,C++编程学习,项目设计学习使用
2022-03-30
vc运行库大全Windows通用
2021-08-12
windows桌面便签Qt6版本源码dailynote桌面版
2021-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人