您的位置:首页 > 运维架构 > Linux

linux下使用Qt库进行开发心得

2016-03-24 13:49 393 查看
qt中文参考文档:http://www.kuqin.com/qtdocument/index.html

看过才知道原来参考文档这么好用,其他的教程简直就是渣.....

一、在qtcreator中使用其他的c++开发库

在安装好Qt后,直接在命令行中输入qtcreator可以直接打开Qt的IDE

在使用qtcreator的过程中,常常需要把其他的一些开发库包含进来,这里我需要使用到一个抓包的库:libpcap。

但网上的教程大都是编译时在命令行中加入 -lpcap 其中 -l是固定的,pcap为你在qt程序中#include<pcap.h>这个头文件名。

在Qtcreator中,我们只需要在每一个工程都有的.pro文件中,加入 LIBS += -L/usr/local/lib -lpcap,再在程序中將所需要的头文件include进去,就可以使用libpcap进行编程了

二、QT信号、槽机制

所有包含信号和/或者槽的类必须在它们的声明中提到Q_OBJECT。

参考链接:http://www.kuqin.com/qtdocument/signalsandslots.html

三、#ifndef的用法



#ifndef 标识
#define 标识

......
......
......

#endif


这是一个经典的C语句,为了避免出现一个头文件被包含不止一次的情况。

即如果已经定义过某标识,则下面的头文件中的类不再被定义

如果还没定义过,则对头文件的类进行定义

这样就可以保证把两个头文件被引用到了一起时,不会出现同一头文件中的类被两次定义的情况

四、操作符的重载

运算符在重载的时候有两种方式,一是成员函数方式,二是成友元(friend)函数方式。

如果是设置成友元函数,一定要注意:

(1)当重载友元函数时,将没有隐含的参数this指针。这样,对双目运算符,友元函数有2个参数,对单目运算符,友元函数有一个参数。

(2)有些运行符不能重载为友元函数,它们是:=,(),[]和->。

operator前加&返回引用类型,不加返回对象

四、编译错误:


error:
default argument given for parameter 1

默认参数只能在函数声明和函数定义中只能有一个,不能在函数声明和函数定义中都定义默认参数

invalid use of incomplete type

出现这个问题,表明编译器不知道所用的struct 或者是class的具体实现,通常出现在如下情况:假设我们有一个class some定义在some.h中,实现在some.cpp中,我们在other.cpp中要用到这个some 的方法,于是我们再other.h中声明可一个class some,并声明了要用到的方法,这样就会导致上述的问题,解决这个问题的方法是:在other.cpp中include some.h,这样编译器就会根据该头文件找到class
some的具体定义,问题也就解决了。

持续更新中.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: