让我们一起开始第一个Qt应用程序,当然,如果你手头有Qt的doc文档,你同样可以参阅doc文档中的Qt Tutorial 1。
你可以通过vi或者emacs编写下面的一段代码:
0001
#include <QApplication>
0002
#include <QPushButton>
0003
0004
int main(int argc, char **argv)
0005 {
0006
QApplication
app
(
argc
,
argv
);
0007
0008
QPushButton
hello
("Hello Qt!");
0009
hello
.resize
(
120
,
30
);
0010
0011
hello
.show
();
0012
return
app
.exec
();
0013 }
下面我们一行一行的解释一下代码的意思。
第1行与第2行是包含QApplication,和QPushButton的类的定义,其中QApplication类的对象在每个一个Qt的GUI应用程序都必须有,这是每一个GUI应用程序都必须有的对象,这个类的对象将管理整个应用程序的GUI资源。QPushButton是一个GUI的按钮,像一般的Windows按钮一样,用户可以通过点击或释放的方式触发按钮事件。
第3行中的app对象是QApplication类的实例,这里我们将argc和argv这样命行参数传递给QApplication的构造函数
QApplication( int &
argc, char **
argv )。
第8行这里通过调用QPushButton的构造函数QPushButton( const QString & text, QWidget * parent = 0 )来构造一个QPushButton的对象hello,并将按钮上显示的文本设置为Hello Qt!
第9行将button的按钮的大小设置为120像素的宽,30像素的高。第11行的代码将我们生成的hello的按钮显示出来。这个show函数其实是QPushButton的祖父级类QWidget的函数QWidget::show(),在Qt中,几乎所有的GUI组件都是从QWidget上继承而来的。像上面第9行的resize函数也是QWidget的成员函数void resize( int w, int h )。
第12行,main函数将控制大权传递给Qt,即QApplication的实例对象app,我们前面提到过每一个Qt应用程序都有且仅有一个QApplication对象,以用来维护整个Qt资源,通过调用exec()来执行Qt程序,这个exec()函数是QCoreApplication的成员函数,其中QCoreApplication是QApplication的基类。在QCoreApplication::exec()中,应用程序处理所有由系统和用户触发的事件,并将这个事件传递给指定的组件,比如,当用户点击按钮时,触发一个press事件,我们会在后面提到的信号和槽的概念,这样就可以让程序弹出如对话框之类的处理,具体的事件处理过程可参阅
Qt事件研究。
现在,我们将这个程序编译出来。
在源程序所在目录执行qmake –project命令生成.pro文件。
[root@localhost hello] qmake -project
这是在这个目录下生成了与目录名相同的.pro文件,如hello目录,其.pro文件名为hello.pro。
接着执行
[root@localhost hello] qmake
这时在这个目录下生成Makefile文件,然后执行make。
[root@localhost hello] make
这个时候在这个目录生成了可执行程序,其程序的名字与这个目录名相同。好了,运行一下吧,看看结果。
[root@localhost hello] ./hello
记住,运行这个程序必须在X11环境下运行。