- 博客(83)
- 收藏
- 关注
原创 Qt warning LNK4042: 对象被多次指定;已忽略多余的指定
但是假如该目录下只有头文件,没有cpp 文件,仍然添加了 SOURCES += $$PWD/*.cpp,则会导致 LNK4042。解决:删除变量 SOURCES 和 HEADERS 中重复条目。对于某些pri库可以使用如下代码简写包含。一、常规原因: pro或pri 文件中源文件被多次包含。
2025-03-30 15:42:56
450
原创 qt 自带虚拟键盘的编译使用记录
但是由于 视图的大小决定了 qml 界面可显示的范围,若修改视图大小,则qml 只能在该区域内显示。4、屏蔽Binding 的代码,该代码具体含义不明,大概是会改变到 视图 可视的范围大小,会造成 与 在DesktopInputPanel 类的 show 函数中 修改 视图的大小一样的问题。2、只需要在InputPanel.qml 修改即可,该 文件中的 Keyboard 即是整个键盘,直接修改其宽度即可,高度设置不生效(应该是内部自动根据宽度调整的),位置修改为 锚定父对象底部。将 Qt 安装目录下的。
2025-03-13 16:37:09
931
原创 protobuf 定义 引用 google 自带的proto 注意事项
2、如果没设置环境变量等,纯希望在某个目录运行 protoc.exe 进行文件的生成的话,protoc.exe放置目录一定需要在 google头文件目录 以及 自身 放置 proto 的目录 之上。假如放置在src_grpcProto 中。想使用 相对路径 ../include 的方式找,根本找不到。注:1、一定一定要 已 google/protobuf/ 开始引入,不然生成出来的文件无法编译,,示例:import "google/protobuf/any.proto";
2025-03-07 14:23:36
339
原创 C++ Dll 库 的创建与使用方法记录
3、如果本地没有QT 的环境,可用直接从上述工程环境中将 qt/include / QtCore 目录 和 对应的 QtCore.lib、QtCored.lib 拷入当前工程。4、配置属性--> c/c++ ---> 常规--> 包含目录中 -->添加 qtcore 的目录、添加libtest.h 的目录。6、配置属性--> 链接器 ---> 输入--> 附加依赖项--> 添加 libtest.lib。5、配置属性--> 链接器 ---> 常规--> 附加库目录 -->添加 对应的lib 所在目录。
2024-09-06 16:29:08
431
原创 关于c++ grpc 和 c# grpc 通信的问题 以及 grpc 认证问题
c# 端服务器 如果域名 输入的是 https ,则 c++ 端需要匹配使用,也就是c++ 端需要进行安全认证。在生产环境中,通常需要使用由受信任的证书颁发机构(CA)签发的证书。在运行 .NET Core 应用程序时,提示使用 SSL(即 HTTPS),通常情况下,.NET Core 可以生成自签名证书来简化开发和测试过程。在 开发 c++ grpc 客户端 与 c# 服务端时 ,c# 程序就是默认使用的 https , 所以c++ 客户端需要如果需要连接的话,,就必须使用认证,,需要一个证书。
2024-08-20 17:29:51
1397
原创 关于Protobuf 输入输出中文到文件中的一系列问题
1、读取,还是可以正常读取,但是获取到的 strParaName 值,是八进制转义字符串,,如果是qt 等使用,使用QString 去转一下,还是可以直接获取到中文字符串的,2、写入,,如果直接使用上述方式写入,,,文件中的中文 就是八进制转义字符串,,是人不可读的,,如下。2、写入文件(是人可读的,有点类似与json 格式那种)二、如果定义中是bytes ,且值是中文的。三、解决,只能通过自己转换的方式。一、不含中文的常规处理。
2024-07-29 17:01:19
626
原创 关于Static 误用问题,总是记不住
上述在头文件中定义static 函数 对于大多数情况没啥问题,,但是如果这个函数里面定义了静态局部变量用于统计进入的次数等功能,那这个函数的功能就没有达到,,因为都是独立的了。和static变量一样,,如果是 在头文件 里 使用 static 修饰定义,,那样所有引用该头文件的都会有自己的该函数副本,相当于inline 了,,,const单独使用时,其特性与static一样(每个编译单元中地址都不一样,不过因为是常量,也不能修改,所以就没有多大关系)。* 这意味着其他文件无法直接访问或修改这个变量的值。
2024-07-27 10:35:16
339
原创 解决: QPainter::begin returned false
问题:release 版本下 limereport 打印 在某些电脑上 不弹出对话框且报错,debug 版本又正常。解决:将D:\Qt\5.12.4\msvc2017\plugins\printsupport 目录拷到运行目录下。
2024-06-21 10:53:26
475
原创 QT 中文乱码 以及 tr 的使用
前面的上下文一定要正确,,因为定义是用的QObject::tr() 全局函数,所以上下文在"QObject", 如果是直接用的 tr() ,上下文可能就是在定义所在文件,,具体可以在lingguist 生成的文件里查看。3、关于tr 误用,,经常可能 这样使用: tr(u8"哈哈哈");4、如果 一个项目,事先都是用的中文,突然要做国际化,太多地方使用了 tr(u8"哈哈哈"),,,界面也是中文,,不想全部改为英文,然后提供翻译包的话,,,把 tr(u8"哈哈哈"), 改为。
2024-06-11 15:52:02
1363
原创 解决 C2449在文件范围内找到 “{“(是否缺少函数头?), C2059 语法错误:“}“
从 linux 的代码 拷到 windows ,使用vs2022 编译 报错。解决: 把LF 改为 CRLF。
2024-04-25 16:37:38
686
原创 QT 自定义dialog 关闭后再次打开窗体,控件不显示
问题: 如果主界面通过 new 的方式创建的窗体,也就是说该窗体一直存在,,如果通过dialog 默认的关闭按钮关闭,再次打开该窗体,他的客户区的控件可能会无法显示。解决: 重写closeevent ,且忽略事件。
2024-04-01 13:45:03
734
原创 一种qt 信号 与 槽 传递失效 问题原因
3、本例子导致原因就,原程序 修改处 存在对一个单例的使用,巧合导致执行时该单例是在此初始化的(主线程)。2、即使看似修改第地方与出错的地方毫无关系,也要认真查找到修改的地方与出错的地方的联系,比如 我存在的联系在于对 一个 全局 单例 的 使用。4、单例初始化一定一定在主函数中事先调用一次,不仅是避免上述情况,也能避免单例自身的线程安全问题。1、代码修改一定要 边测试边修改,,
2024-03-13 17:30:42
499
原创 Qt 范例阅读 :插件功能 plugabdpaint
分两种,动态库、静态库,只是 CONFIG += plugin static(static 有无区别)一、源码目录: Qt\Examples\Qt-5.12.4\widgets\tools\plugandpaint。首先需要使用 Q_IMPORT_PLUGIN(BasicToolsPlugin) 进行导入。
2024-03-08 11:36:33
407
原创 关于数据库引擎为MyISAM ,但是却错误使用了事务语句。
如果你需要事务支持,建议使用支持事务的存储引擎,如 InnoDB。InnoDB 是 MySQL 的默认存储引擎,它提供了完整的 ACID 事务支持,适用于需要高可靠性和事务处理特性的应用场景。虽然被执行,但对于 MyISAM 表实际上没有任何作用,它们不会产生事务控制的行为。因此,即便是在 MyISAM 表上,这样的命令序列也会“成功”执行,但成功的含义仅限于语法上的正确和。的语句时,这些语句本身在语法上是正确的,因此 MySQL 会正常执行这些命令。3、MyISAM不支持事务,但是事务语句没有失败。
2024-02-05 10:18:47
372
原创 QT 范例阅读:系统托盘 The System Tray Icon example
【代码】QT 范例阅读:系统托盘 The System Tray Icon example。
2024-02-04 10:02:56
1971
原创 Qt 范例阅读: QStateMachine状态机框架 和 SCXML 引擎简单记录(方便后续有需求能想到这两个东西)
属性界面:red : 标识状态;onentry 标识 进入red 状态要执行的行为 是 send startGoingGreen 事件。working 状态下子状态有:red 、green、yellow(子状态:redGoingGreen、greenGoingRed)整个文件已经定义好了各个状态之间的切换条件、所以启动状态机后状态机会自动运转。broken 状态下子状态有: blinking 、 unblinking。scxml 文件含义:定义了两个大的状态 working 、broken。
2024-02-02 09:26:52
1638
原创 QT 范例阅读: undoframework
通过给 QGraphicsScene 添加、删除、移动 QGraphicsPolygonItem 来演示 撤销重做功能。标签 undo framework example。MainWindow.cpp 的核心代码。三、撤销重做是 命令模式的一种体现。二、核心代码,以添加图例为例。
2024-02-01 16:46:38
667
原创 QT 范例阅读:Vector Deformation
可以只更新 特定区域;如 update(rectBefore | rectAfter);paintEvent(QPaintEvent *e) 中 可以使用 e->rect();
2024-01-27 10:03:25
544
原创 学习qt 范例的地址:主要是分类了,方便查看
所有 Qt 范例 | Qt 5.15 - 中文文档编制,帮助,手册,教程 (digitser.top)
2024-01-26 14:57:08
217
原创 QT 视图场景 坐标理解
1、对于QGraphicsItem 坐标,比如创建一个QGraphicsRectItem ,,红色框给定的矩形参数为(-50,-50,100,100),蓝色框为(0,0,100,100).3、场景 可以设置 setSceneRect,则是表示视图可以观测的区域,如果视图大小比较小,则会出现滑块,,默认视图是观察到场景可观测区域的中心,,两个不同的矩形参数的图元显示上就和上图一致。图元在场景中的位置,,比如设置为(100,100),是代表 图元自己中心位置(0,0)移动到 场景的 (100,100)位置。
2024-01-25 20:02:55
898
原创 QT 官方例程阅读: XML Patterns 相关
就是根据 已知的XML 模式,验证输入的XML 文件格式是否匹配,不匹配可以输出不匹配位置如下,,首先定义了contact 元素 的子元素列表,,匹配文件中title 并没有定义,所以报错。
2024-01-25 17:07:45
1140
原创 EXECL 单元格字符串链接 CONCAT :应用:将一行数据转为json
"""" : 显示引号,,注意与前面一个逗号之间要有空格,,不然会识别不到。:CHAR(10) :换行。
2024-01-22 13:34:43
585
原创 记录一次linux 程序崩溃问题
最终原因:程序某头文件 添加了#pragma pack(1),导致程序编译的程序有问题,具体原因不知。和他一样的程序(使用了std::ofstream 的那部分代码),,不会崩。release 版本才会崩,debug版本就不会。崩溃地点:std::ofstream 对象创建。
2023-12-29 13:44:25
599
原创 关于std 线程库 优先级问题 以及linux 线程优先级设置不生效问题记录
三、如下提供了使用 std:thread 和 std:async 进行多线程处理的实例,并且测试了使用pthread 的API 设置线程优先级和调度策略。多核CPU 下设置亲和性后,输出与预期一致。一、标准线程库thread 并不支持设置优先级等属性,,如果需要设置需要使用系统相关的API 进行设置,使用 native_handle 函数进行对接。二、linux 线程优先级 设置后执行顺序不是预期行为 ,考虑是不是多核CPU 导致。可以设置线程亲和性后进行测试。
2023-12-20 14:11:02
1187
原创 一些很好的网站:C++ 、设计模式、算法等等,持续记录
九、人工智能界的 github : huggingface ,,被墙了,下面是国内镜像。八、图示C++标准库等等(主页:hackingcpp.com )一、查看C++ 模板展开、或者说是查看 编译器 做了些什么工作。十一、qt 问题提问网站,类似stackoverflow 这种。五、学习 GIt 包括使用和原理。六、练习算法的讲解 :代码随想录。七、做页面设计、图标等等 的网站。三、现代C++教程 pdf。十二、Bash 命令学习。十四、c++ 后端知识,四、QT 范例 列表。十、CMake 教程。
2023-12-14 20:28:52
729
原创 vscode 编译运行c++ 记录
二、ctrl + shift + p 进入 c/c++配置 进行 IntelliSense 配置。主要是选择编译器、 c++标准, 设置头文件路径等,配置好后会生成 c_cpp_properties.json;2、点击运行调试,选择调试器、会生成task.json;默认是单文件编译,可以注释红线处,然后手动添加所需要编译的文件。1、点运行和调试,生成 launch.json。4、修改启动路径、添加启动参数等。2、添加配置,选择启动方式。一、打开文件夹,新建或打开一个cpp文件。
2023-12-06 15:50:54
991
1
原创 关于limereport 使用打包问题 和程序无法运行0x000007b
二、0x000007b 大概率是打包的时候,该exe 所依赖的dll 不存在或者 不匹配系统环境,检查自己安装包是否所有dll 都正确,qt 程序使用windeployqt打包即可,注意如果有第三方库如上述limereport,需对第三方库进行打包。一、引用limereport库的工程,打包时除了使用windeployqt 对工程exe 打包,还需要对limereport.dll 进行打包。也可能是系统运行库不正确,执行微软运行集合包。
2023-12-02 10:31:14
533
原创 由于设置了全局 QWidget 背景导致QT QCalendarWidget 表态背景异常
解决: 单独设置QCalendarWidget 的qss :对象是查看源码所得......opacity: 1;
2023-11-25 14:39:57
787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅