Qt小结
(1)#include 报错fatal error: QHostInfo:No such file or directory,
解决办法 在.pro文件中添加 QT += core gui network 记得这里要加上network
(2)给Qt软件添加软件图标
(1) 找到一张图片.ico,名字改为myappico.ico;
(2) 创建一个新的文本文档,内部添加 IDI_ICON1 ICON DISCARDABLE "myappico.ico",并将文件重命名为myapp.rc;
(3) 在myapp.pro文件最后加上RC_FILE = myapp.rc,重新生成之后,就修改成功了 //只适用与windows,Ubuntu这样用无效!
(3)在Qt中添加外部全局变量方法:
在一个.CPP文件中定义一个变量 如:QString cxd;
在另一个.CPP文件中声明 extern QString cxd;
注意不能在头文件中声明外部全局变量,那样会报错提示重复定义
(4)mian函数中得 argv[] 数组:
argv[0]中存放的是本软件存放得绝对路径
argv[1]中存放得的是(如果你点击一个gif图片自动打开你写的软件时) argv[1]存放的就是这个gif文件的绝对路径加如:C:/Users/cxd/Desktop/cxd.gif
前提是你设置你的软件为gif格式得文件默认打开程序 注:在windows下是这样的
(5) VS2010开发环境中无法打开包括文件:“QUdpSocket”:No such file or directory(VS2010开发环境中)
可能是因为Qt版本(本人用的是Qt4.7.3)的原因,网络模块的TCP、UDP头文件发生了变化。
解决方法:把原先的#include <QUdpSocket>包含加上QtNetwork/,即变成#include <QtNetwork/QUdpSocket>,QTcpSocket、QHostAddress的同理。
(后记):其实此问题并不是路径问题,只要在Qt工程中把QtNetwork library加上去就可以了,而无需把原先的#include <QUdpSocket>包含加上 QtNetwork/。
(6)Qt在编译时出现:-1: 错误:qextserialport.o: Relocations in generic ELF (EM: 40)
是因为我在x86编译器和ARM编译器之间相互切换编译造成的,解决办法是在编译输出的文件夹中执行
#make distclean来清除上一次编译出来的文件,在重新编译就可以了。
(7)Qt中的 emit 宏的意思:
用户定义了信号,总会在一定情况下需要发出信号,emit就是用来发出用户信号的
(8)Linux下的Qt项目在windows下会出现乱码问题,是因为编码不一样,选择UTF-8编码就可以了!