QT学习笔记-经验篇.doc
QT学习笔记〔初识〕
2009-05-2111:13
QT学习笔记〔初识〕
查看RedHat自带QT库
路径:/usr/lib/qt-3.1,查看目录qt3-1下是否有13个文件,假设没有,那么需要安装。主菜单-系统设置-添加程序-选中KDE软件开发-更新。
在Linux下做一个五子棋的小游戏。
在/home/下创立目录qt,编写一个小程序hello.cpp的C++文件。
下面介绍hello.cpp源程序:
#includeqapplication.h
#includeqwidget.h//窗口类的头文件
#includeqpushbutton.h//按键类的头文件
intmain(intargc,char**argv)
{
QApplicationa(argc,argv);
QWidgetmainwindow;//定义主窗口对象
mainwindow.setMinimumSize(20,10);//设置最小尺寸
mainwindow.setMaximumSize(200,100);//设置最大尺寸
QPushButtonhelloworld(HelloWorld!,mainwindow);//调用了
//QPushButton的第二个构造函数,
//指定副部件为mainwindow
helloworld.setGeometry(20,20,160,60);//此函数是由其父类继承来的
a.setMainWidget(mainwindow);//设置mainwindow为主部件
mainwindow.show();//显示窗口
returna.exec();//存在一个while循环,等待用户发命令
}
窗口〔类〕QWidget按钮(类)QPushButton
特性可关闭可点击
共性可设大小可设大小
两个类是从可视类派生来的,例如函数setGeometry是设置几何尺寸的,窗口和按钮两类都可调用,设置尺寸大小函数也是由其父类继承来的,两类都可以用。
经编译:g++hello.cpp–ohello–lqt,编译器会报错,未发现所用到的头文件。
分析错误原因:提示中说未找到程序中所用到的头文件,当编译程序时,编译器首先到特定目录下寻找原文件的头文件和函数库:
头文件目录:/usr/include
库文件目录:/lib/,/usr/lib/
但QT库存放在目录/usr/lib/qt-3.1下,此文件里有三个重要的目录:/bin/;/lib/;/include/.
/bin里存放的是QT库的使用手册;/lib下存放的是库文件,即由原库文件生成目标文件*.o;/include下存放的是各库文件的声明。
因此,在编译时,编译器找不到正确的文件,所以必须对环境变量做修改。
方法一:敲入命令,这样可以暂时修改环境变量,设定其查找路径,但并不能保存修改,在下一次开机后,需要重新设置。
1〕#g++hello.cpp–ohello–lqt–I/usr/lib/qt-3.1/include
2〕#exportCPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/include
#g++hello.cpp–ohello–lqt
以上两种方法等价。
再次编译后仍旧有错,找不到库文件。
指定库路径:
1〕#g++hello.cpp–ohello–lqt–L/usr/lib/qt-3.1/lib
2〕#exportLIBRARY_PATH=/usr/lib/qt-3.1/lib
#g++hello.cpp–ohello–lqt
最终生成可执行文件hello。
其中,-lqt是连接QT库的参数语句,-lqt等价于-libqt.so,它是一个动态库,它包含了众多库文件,链接时只会把所需库文件链接进来,这样就不会使最终生成的文件过大。
知识点:gcc-I+头文件路径
-L+库文件路径
-l+链接库
方法二:将环境变量添加到/etc/profile/内,它是一个类似脚本的文件,每次开机都会执行里面的语句,即系统在开机时自动执行改变路径的命令,来修改环境变量。
添加内容:CPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/include
LIBRARY_PATH=/usr/lib/qt-3.1/lib
exportCPLUS_INCLUDE_PATHLIBRARY_PATH
编译C++常用命令:〔源文件hello.cpp〕
#qmake–v可查看qt版本
#qmake–project产生一个工程文件
#qmake产生Makefile文件Makefile
#make生成目标文件和可执行文件hell