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的用法
这是一个经典的C语句,为了避免出现一个头文件被包含不止一次的情况。
即如果已经定义过某标识,则下面的头文件中的类不再被定义
如果还没定义过,则对头文件的类进行定义
这样就可以保证把两个头文件被引用到了一起时,不会出现同一头文件中的类被两次定义的情况
四、操作符的重载
运算符在重载的时候有两种方式,一是成员函数方式,二是成友元(friend)函数方式。
如果是设置成友元函数,一定要注意:
(1)当重载友元函数时,将没有隐含的参数this指针。这样,对双目运算符,友元函数有2个参数,对单目运算符,友元函数有一个参数。
(2)有些运行符不能重载为友元函数,它们是:=,(),[]和->。
operator前加&返回引用类型,不加返回对象
四、编译错误:
默认参数只能在函数声明和函数定义中只能有一个,不能在函数声明和函数定义中都定义默认参数
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的具体定义,问题也就解决了。
持续更新中.....
看过才知道原来参考文档这么好用,其他的教程简直就是渣.....
一、在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的具体定义,问题也就解决了。
持续更新中.....
相关文章推荐
- centos 6.X系统里的网卡em1还原为eth0
- centos下如何停止ping命令
- Linux驱动开发-8、中断分层机制_软中断
- [basic linux基础]-进程
- Linux内存管理Linux Memory Management Notes
- linux安装cnn库
- Linux命令-进程后台执行:nohup(就是不挂起的意思)
- Linux编程---线程
- linux中安装jdk+jmeter-
- linux中安装jdk+jmeter-
- linux安装boost库
- 关于Makefile的正确使用
- linux 读取input输入设备demo
- linux下的VI命令大全
- parted命令对齐分区,获得最佳性能
- linux下vi命令大全
- Linux下查看文件内容的命令
- Linux系统中nmap网络扫描工具的命令用法详解
- Linux系统中sort排序命令的使用教程
- linux运维实战练习-2016年3月4日-3月19日课程作业