9. QtCreator 中qdebug() log 无法输出问题解决
QtCreator->Projects->Run->Run in terminal 取消勾选
10. 数据库中增加和删除一列
ALTER TABLE gdoorder ADD FlexDel VARCHAR(1) default 0 not null;
ALTER TABLE gdoorder drop column FlexDel ;
注意: 添加时,not null要放在default 0之后, 否则会报错
'ORA-30649:missing directory keyword
11. Qt插件加载失败 (QPluginLoader::load()方法返回false,没有任何提示)调试策略:
增加环境变量export QT_DEBUG_PLUGINS=1,打开调试信息。比如:
提示插件内部找不到符号COMP_CTx_free, 网上查到该符号是openssl库中的一个方法, ldd -r命令发现显示有很多未定义的符号, 查看插件工程的pro 文件发现,该插件应该链接libssl库和libcrypto库(pro文件中有-llibssl -llibcrypto),ldd命令并没有列出libssl和libcrypto。查看 /usr/libs/发现有libssl和libcrypto带版本号的库。
解决方法:
建立libssl.so 和 libcyrpto.so链接:
ln -s libssl.so.1.0.2 libssl.so
ln -s libcrypto.so.1.0.2 libcrypto.so
12. ldd命令查看依赖库小技巧
通常使用ldd libxx直接查看libxx库依赖的库,如果有依赖库找不到,会在=>后面提示出来,但是, 对某些特殊情况,有问题的依赖库没有列出来,很难看出有没有问题。
使用参数-r可以更直观: ldd -r libxx
,但是不能指出是否缺少某些符号,需要加上 -r参数 。
13. 当在结构体中定义bool类型数据时,要特别注意给结构体初始化,至少要给bool类型成员初始化。
在项目中遇到两次这种情况,在没有给bool类型成员赋值的时候,使用了它,很大概率,读取的是一个非零值,因为这块内存中不可能刚好是0. 导致了莫名其妙的问题,不该是true的时候读出来是true。
14. 界面布局对不齐问题。
gradelayout默认是会把每个元素对齐,但是有些情况下比如元素比较多,界面比较复杂时,可能会出现对不齐的情况。这种情况需要打破布局,重新手动对齐元素,再做layout。
比如:
下面这个界面圈出的文本1和文本2和QLineEdit都没有对齐。打破layout以后发现所有的文本和lineEdit都没对齐。手动对齐以后再做layout,问题解决。