唐山上门按摩女电话:QT 继承

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 04:58:18

QT 继承


由于教授给的任务需要用到一个可以跨平台的GUI,我选择了现在刚刚兴起的QT。

QT是基于C++编写的图形界面库,会用C++的朋友学习起来应该问题不大。QT的库相比MFC我个人感觉还是要规则很多,学起来也比较容易。由于本人也是新手,刚开始学习QT没几天,所以打算在这里写下自己学习过程中的一些心得体会,以及遇到的一些问题。希望和感兴趣的朋友做个交流。

首先介绍一下几个比较好用的QT的IDE。由于本人是在windows系统平台下面编写QT程序的,我这里介绍的是在windows环境下比较流行的IDE。

QT再被NOKIA收购以后,推出了一款比较实用的综合性IDE:QT Creator。在此之前,QT也是可以内嵌在VS和Eclipse里面的。

QT的图形界面设计器QT designer是专门用来设计UI(图形界面)的。它不提供对界面控件的直接操作,只是对界面进行设计。最新的QT Creator已经内嵌了这个designer。所以可以直接在Creator中进行UI的设计。

下面对一个QT工程进行一下简要的介绍吧。这里仅对app project进行介绍,因为一般用QT也就是为了设计一个应用程序。

一个app project应该包括以下几个文件:XXX.ui,h_XXX.h,XXX.h,XXX.cpp,YYY.cpp, XXX.qrc, XXX.pro几个文件。

XXX.ui:这个是图形界面生成的文件,也就是我们通过使用QT designer设计的界面产生的文件了。这个文件内部定义了一个图形界面类,实际上是一个XML文件,如果你用记事本打开,就会看到了。

h_XXX.h:这个是对XXX.ui文件进行编译之后生成的C++头文件。该文件内部定义了一个类,这个类就是前面XXX.ui的界面构成的类。该类的内部定义了所有的控件以及对空间初始化的方法。

以上两个文件都是在用QT creator设计好UI后自动产生的。一般不需要我们修改的。

XXX.h:这个文件是主文件的头文件,我们一般是通过这个文件定义的类来调用界面类的。这里讨论两种继承方式:单一继承方式和多继承方式。QT creator默认使用的是单一继承方式。在你创建好一个工程,设计完你的UI后,QT会自动使用单一继承方式在XXX.h文件中关联UI类:

单一继承方式:

XXX.h:

class XXX: public QWidget

{

Q_OBJECT

public:

CFindFileForm(QWidget* = 0);

private:

Ui_XXX ui;

}

在这个类XXX里面我们看到定义了一个私有成员 Ui_XXX类的对象ui,其中的Ui_XXX就是一个UI类,所以可以看出,此方法实际上是把UI类作为自己的一个成员变量来使用的。

在后面的XXX.cpp文件中,也就是对xxx.h文件的类的方法进行实现的文件中,可以使用ui.method来使用UI类。

如果是多继承方式,那么在XXX.h文件中,UI类将作为一个基类被

XXX.h:

class XXX: public QWidget

public Ui_XXX

{

Q_OBJECT

public:

CFindFileForm(QWidget* = 0);

}

XXX.cpp:对XXX.h类中定义的方法进行具体实现的文件。

YYY.cpp:这个是主文件,也就是包含了main()函数的文件。

XXX.pro:qmake工程文件,这个文件就好像是makefile文件,把各文件进行关联qilai的。例如:

FROMS += ../../XXX.ui

HEADERS += XXX.h

SOURCES += YYY.cpp \ XXX.cpp

TARGET = ../bin/YYY

RESOURCES += ../../XXX.qrc

XXX.qrc:资源文件。该文件保存了UI中使用的资源信息,例如图片等。