1. C++ json库 setJsonValue窗口标题设置中文报错
2. Qt 5.9.9 msvc2013 输出窗口中文乱码
在每个使用到中文字符串的头文件和源程序文件的前部加入如下的语句:
#if _MSC_VER >= 1600 //VS2015>VS>VS2010, MSVC VER= 10.0 -14.0
#pragma execution_character_set("utf-8")
#endif
3. This application failed to start because it could not find or load the Qt platform plugin “windows” in “”.
错误截图:
或
意思是“无法找到 Qt 平台插件”,设置环境变量即可。
具体步骤见下图:
变量:QT_QPA_PLATFORM_PLUGIN_PATH,值:D:\soft\Qt5.9.9\5.9.9\msvc2013_64\plugins\platforms
4. error: C1060: 编译器的堆空间不足
问题原因:Qt 添加大量资源文件,编译时会出现内存溢出。
解决方法:在.pro 文件里面加上下面这句话:
CONFIG += resources_big
添加完后,“重新构建”代码。
5. ErrorCode: C0000005
.exe 中的 0x7a97a5ea 处最可能的异常: 0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突:
直接原因:空指针异常。
本处的原因:将ui.控件名写到ui.setupUi(this);前面去了。亦即未给ui分配空间就使用了ui;
ui.btn->setText(QString("用户名"));
........//中间代码段
ui.setupUi(this);
如果写到前面就会发生0xC0000005: 读取位置 0xcdcdcdd1 时发生访问冲突异常,导致程序崩溃。
正确的写法:
ui.setupUi(this);
........//中间代码段
ui.btn->setText(QString("用户名"));
6. Qt Creator 进入信号与槽编辑页面(ui界面变灰),怎么退出
按 F4 进入
按 F3 退出
7. ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread…
关闭Qt项目时,触发了断言失败(见下图)。根据断言提示 “无法将事件发送到由其他线程控制的对象”
,并且断言内容还提到了主程使用到的一个插件程序,这使我突然想到一个内存管理原则:“谁创建,谁销毁”
。
于是,看了下我的插件管理器相关代码,发现该类(即插件管理器)在析构时 delete
了插件指针,然后我将该行 delete
代码注释掉,重新编译运行,该断言消失,解决。
该问题记录于:2024.11.03
更加体会到 “遵守规则编码能提前规避掉大部分bug”。