【不定时更新】
一、定义的变量未使用情况下,在编译时会有警告信息。
处理办法:
参考:https://blog.csdn.net/weixin_39568531/article/details/79174582
1、在项目文件xxx.pro中,加上如下配置:(红色部分)
QMAKE_CXXFLAGS += -Wno-unused-parameter
2、在变量定义的后面加上代码:(红色部分)
QString pos;
Q_UNUSED(pos);
二、程序编译完成后发布,库文件放在程序文件同级的lib目录下,但运行程序时却提示找不到。
处理办法:
参考:https://blog.csdn.net/onlyou930/article/details/6423647
LFLAGS选项可以设置自定义的可执行程序库文件查找路径
在项目文件xxx.pro中,加上如下配置:(红色部分)
QMAKE_LFLAGS += -Wl,-rpath=./lib -Wl,-Bsymbolic
三、如何在信号和槽函数中使用自定义类型
处理办法:
参考:https://blog.csdn.net/wadfji/article/details/54406767
1、自定一种类型,在这个类型的顶部包含:#include <QMetaType>
2、在类型定义完成后,在.h文件中加入声明:Q_DECLARE_METATYPE(TextAndNumber);
3、在.cpp文件的函数中注册这种类型:qRegisterMetaType<TextAndNumber>("TextAndNumber");
4、如果还希望使用这种类型的引用,可同样要注册:
qRegisterMetaType<TextAndNumber>("TextAndNumber&");
这样处理后就可以像其它类型一样在信号和槽函数中使用了。
四、当前qDebug()可以在linux中显示信息,但不能在windows中显示
处理办法:
参考:https://blog.csdn.net/bzhang2012/article/details/78244787
在项目文件xxx.pro中,加上如下配置:(红色部分)
CONFIG += console
五、QT添加大资源文件后编译报错的解决方法
处理办法:
参考:https://blog.csdn.net/zxc131313a/article/details/88784136
在项目文件xxx.pro中,加上如下配置:(红色部分)
CONFIG += resources_big
六、connect 后,可否临时时禁止发信号
处理办法:
参考:http://www.myexceptions.net/qt/1233131.html
在发送信号的操作前使用blockSignals(true),操作完成后,打开信号。
ui->lineEdit->blockSignals(true); // 临时禁止信号
ui->lineEdit->setText("dddd"); // 此操作会产生textChanged信号
ui->lineEdit->blockSignals(false); // 恢复信号
七、如何使用Qt自带图标
处理办法:
打开Qt Creator的帮助,搜索:QStyle::StandardPixmap。大概有70个左右,可以直接使用。
其它更多开发经验总结,参考:https://gitee.com/feiyangqingyun/qtkaifajingyan
八、【C++ 异常】error: jump to case label [-fpermissive]
处理办法:
参考:https://www.jianshu.com/p/254abfa7caed
不同的case语句中定义了相同的变量,造成识别有误。
两种方式:缩小作用域(将case语句的代码用{}扩起来)、扩大作用域(在switch前定义变量)
九、Qt中修改了UI文件后编译,修改总是不生效问题
处理办法:
参考:https://blog.csdn.net/josephfeng/article/details/86693012
最终解决办法:勾选shadow build,将工程目录下的ui_xxxxx.h文件全部删除,重新编译,问题解决!
十、error: 'ui' does not name a type
处理办法:
经查,是前面代码中的括号没闭合,造成后面的代码出问题。
十一、QT 设置运行程序的图标
处理办法:
https://blog.csdn.net/xiezhongyuan07/article/details/79320523
十二、invalid use of imcomplete type 'class QKeyEvent'
forward declaration of 'clase QKeyEvent'
处理办法:
https://blog.csdn.net/u012150179/article/details/13998129
需要在cpp文件前面加上引用: #include <QKeyEvent>
十四、QT窗口调用子窗口一闪而过问题
处理办法:https://blog.csdn.net/xiaopangzayyyyyy/article/details/108652499
创建在stack上的,作用域只是在括号范围内(界面会出现一闪而过)。创建在heap上的,才能正常显示。简单的说,需要使用指针方式定义窗口。
创建在stack的方式(一闪而过):
FrmMyDlg mainForm;
mainForm.show();
创建在heap的方式(正常):
FrmMyDlg *mainForm;
mainForm->show();
十五、Qt程序异常退出,找不到原因。怎么才能捕获异常信息
处理办法:https://blog.csdn.net/aofan9566/article/details/101820710
https://www.cnblogs.com/lcchuguo/p/5177715.html
https://blog.csdn.net/xiaolong1126626497/article/details/114999414
需验证功能 -- 程序能跑起来,还未验证功能。(捕捉异常的函数需放在main函数前面)