Linux 版 (精华区)
发信人: tcpip (高级草包), 信区: Linux
标 题: Qt tutorial 3----"Family values
发信站: 紫 丁 香 (Fri May 5 19:49:45 2000) WWW-POST
Subject Qt tutorial 3----"Family values
Posted by kensou
Posted on 5/2/2000 6:51 PM
第三章: Family Values
这个例子将演示如何创建父控件和子控件.
这个程序还是简单的,它仅仅使用了一个父控件和一个子控件.
/****************************************************************
**
** Qt tutorial 3
**
****************************************************************/
#include
#include
#include
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QWidget w;
w.resize( 200, 120 );
QPushButton quit( "Quit", &w );
quit.move( 62, 40 );
quit.resize( 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
a.setMainWidget( &w );
w.show();
return a.exec();
}
代码逐行解释
QWidget w;
这里我们简简单单地创建了一个控件.注意,我们并没有包含qwidget.h,因为我们包含了
qpushbutton.h而且,QPushButton是QWidget的一个子类(详见 Class Hierarchy).
QWidget类对象不会处理任何事件(events),它只是简单地显示自己的背景颜色 和标题
(caption)
w.resize( 200, 120 );
设置尺寸为200X120象素(pixels).
QPushButton quit( "Quit", &w );
一个孩子出生了.
一个QPushButton对象被创建了,它显示的文字是"Quit",其父控件是w.子控件总是显示在
父控件的上面.当显示时,它会受到父控件的约束.
quit.move( 62, 40 );
子控件被移动到距父控件左上角62,40象素处(包括窗口边框).坐标系是非常普通的视图坐
标, x轴向右增加,y轴向下增加.
w.show();
当一个控件显示后,它会调用它的子控件的show()(除了你显式地调用hide()).
程序行为
注意,如果你改变控件的尺寸,按钮的位置和大小不会象前两章的程序那样改变. 那是因为
控件是QWidget对象,它对尺寸改变不起作用.
X11的用户在使用 -geometry运行程序时也会看到同样的效果.
练习
尝试改变quit.move()和/或quit.resize()的参数,如果按钮quit溢出到控件w后会怎样?
X11用户:
同样尝试把w.resize()移到quit.move/resize的后面,或者a.setMainWidget() 的后面,这
样,-geometry还会工作吗?
你现在可以进入第四章了.
[前一章] [后一章] [教程目录]
------------------------------------------------------------------------------
--
Copyright ?1999 Troll Tech Trademarks Qt version 1.44
孤帆慕云浮,
一剑平江湖。
垂手叹镜月,
悔当草结庐。
--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;
※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: freesrc.hit.edu]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.998毫秒