文档详情

QT学习笔记-经验篇.doc

发布:2025-04-14约7.29万字共88页下载文档
文本预览下载声明

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

显示全部
相似文档