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编码就可以了!

原文地址:https://www.cnblogs.com/cxd2014/p/4074123.html