Qt学习笔记一

【不定时更新】

一、定义的变量未使用情况下,在编译时会有警告信息。

处理办法:

参考: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函数前面)

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值