Linux 版 (精华区)

发信人: tcpip (高级草包), 信区: Linux
标  题: Qt tutorial 1-----"Hello World"
发信站: 紫 丁 香 (Fri May  5 19:48:41 2000) WWW-POST

Subject Qt tutorial 1-----"Hello World"  
Posted by kensou 
Posted on 5/2/2000 6:45 PM 








第一章: Hello, World!




第一个程序是非常简单的hello-world例程.它仅仅包含了可以使Qt程序能正常运行的最小
的部分.上面的图象是本例程的快照. 


/****************************************************************
**
** Qt tutorial 1
**
****************************************************************/

#include 
#include 

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

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

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


代码逐行解释

#include 

这一行包含了QApplication的定义.每一个Qt程序都必须有一个QApplicate对象. 
QApplication管理应用程序广泛应用的资源,例如缺省的字体和光标. 


#include 

这一行定义了QPushButton类的定义.当你要使用某个类时, 参考文档会告诉你需要包含那
个头文件. 

QPushButton是一个经典的图形按钮类,它可以被按下或释放,并且它可以控制自己的外观,
如同其它的控件.控件是一些可以处理用户输入和绘图的图形对象.程序员可以改变它们的
外观与feel, 和一些诸如颜色,控件的内含等显示属性.QPushButton还可以显示其他的文
本或 位图. 


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

main()函数是程序的入口.在使用Qt时,main()只是在把控制交给Qt库之前做一些初始化的
工作. 

argc是命令行参数的数目,argv是命令参数的数组.这并不是Qt 特有的,而是C++的特点,但
是,Qt需要处理这些参数(详情见下面的介绍). 


QApplication a( argc, argv );

a是本程序的QApplication对象,它被创建的目的是处理一些命令参数(例如X11下的 
-display).注意,所有能被Qt识别的参数会被从argv中除去(argc 也会相应的减小为留下
的参数的数目).详情见QApplication::argv() 文档. 

注意:在使用任何Qt窗口系统之前,QApplication对象必须被创建. 


QPushButton hello( "Hello world!" );

这里,在QApplication对象创建之后,进入第一句窗口代码:创建一个按钮. 

使此按钮显示文本"Hello world!",并且它只属于本按钮自身(因为构造函数中并没有指明
这个按钮应属于哪个控件). 


hello.resize( 100, 30 );

设置按钮的大小是100X30象素.在本例程中我们并不关心按钮的位置,只是使用了缺省的数
值. 


a.setMainWidget( &hello );

应用程序设定hello按钮为主控件,当主控件关闭后,程序退出. 

主控件不是必需的,但大部分程序都有一个主控件. 


hello.show();

一个控件被创建后是不可见的,你必须调用show()函数使之可见. 


return a.exec();

在这里,main()将控制权交给Qt,当应用程序退出时exec()将返回. 

在 exec()执行期间,Qt接收并处理用户的系统事件并且在可见控件上表现出来. 


}


程序行为
现在你可以尝试编译并 运行 本程序. 

当你运行它时,你会看到一个只有一个按钮的窗口,上面是那句经典的名言"Hello 
World!". 


练习
试着改变窗口的尺寸.按下按钮.如果你是在X11下运行本程序,不妨用 -geometry参数在命
令行中运行它.(例如: -geometry 100X200+10+20) 

下面我们进入第二章 

[下一章] [教程目录] 

 

--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;

※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: freesrc.hit.edu] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.303毫秒