您的位置:首页 > 编程语言 > Qt开发

Qt教程 第一章:Hello, World!

2016-03-23 12:57 393 查看
第一个程序是一个简单的Hello World例子。它只包含你建立和运行Qt应用程序所需要的最少的代码。

#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
QApplication a( argc, argv );

QPushButton hello( "Hello world!", 0 );
hello.resize( 100, 30 );

a.setMainWidget( &hello );
hello.show();
return a.exec();
}


一行一行地解说

#include <qapplication.h>


这一行包含了
QApplication
类的定义。在每一个使用Qt的应用程序中都必须使用一个
QApplication
对象。
QApplication
管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。

#include <qpushbutton.h>


这一行包含了
QPushButton
类的定义。

QPushButton
是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。它管理自己的观感,就像其它每一个QWidget。一个窗口部件就是一个可以处理用户输入和绘制图形的用户界面对象。程序员可以改变它的全部观感和它的许多主要的属性(比如颜色),还有这个窗口部件的内容。一个
QPushButton
可以显示一段文本或者一个
QPixmap


int main( int argc, char **argv )
{


main()
函数是程序的入口。几乎在使用Qt的所有情况下,
main()
只需要在把控制转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。

argc
是命令行变量的数量,
argv
是命令行变量的数组。这是一个C/C++特征。它不是Qt专有的,无论如何Qt需要处理这些变量。

QApplication a( argc, argv );


a
是这个程序的
QApplication
。它在这里被创建并且处理这些命令行变量。请注意,所有被Qt识别的命令行参数都会从
argv
中被移除(并且
argc
也因此而减少)。

注意:在任何Qt的窗口系统部件被使用之前创建
QApplication
对象是必须的。

QPushButton hello( "Hello world!", 0 );


这里,在
QApplication
之后,接着的是第一个窗口系统代码:一个按钮被创建了。

这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造函数指定
0
为它的父窗口,在这个父窗口中按钮被定位)。

hello.resize( 100, 30 );


这个按酒被设置成100像素宽,30像素高(加上窗口系统边框)。在这种情况下,我们不用考虑按钮的位置,并且我们接受默认值。

a.setMainWidget( &hello );


这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应用程序就退出了。

你不用必须设置一个主窗口部件,但绝大多数程序都有一个。

hello.show();


当你创建一个窗口部件的时候,它是不可见的。你必须调用
show()
来使它变为可见的。

return a.exec();


这里就是
main()
把控制转交给Qt,并且当应用程序退出的时候
exec()
就会返回。

exec()
中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

}


你现在可以试着编译和运行这个程序了。

编译

编译一个C++应用程序,你需要创建一个
makefile
。创建一个Qt的
makefile
的最容易的方法是使用Qt提供的连编工具
qmake
。如果你已经把
main.cpp
保存到它自己的目录了,你所要做的就是这些:

qmake -project
qmake


第一个命令调用
qmake
来生成一个
.pro
(项目)文件。第二个命令根据这个项目文件来生成一个(系统相关的)
makefile
。你现在可以输入
make
(或者
nmake
,如果你使用Visual Studio),然后运行你的第一个Qt应用程序!

行为

当你运行它的时候,你就会看到一个被单一按钮充满的小窗口,在它上面你可以读到著名的词:Hellow World!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt