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

来源:互联网 发布:淘宝付款显示交易关闭 编辑:程序博客网 时间:2024/06/13 00:06

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的具体定义,问题也就解决了。


持续更新中.....


0 0
原创粉丝点击