Linux 版 (精华区)
发信人: tcpip (高级草包), 信区: Linux
标 题: Qt tutorial 2------call it quits
发信站: 紫 丁 香 (Fri May 5 19:49:18 2000) WWW-POST
Subject Qt tutorial 2------call it quits
Posted by kensou
Posted on 5/2/2000 6:49 PM
第二章: Calling it Quits
在第一章中,我们已经创建了一个窗口,在本章中,我们将让此程序响应用户的退出指示.
并且,我们将使用一种现有的字体来代替缺省的字体.
/****************************************************************
**
** Qt tutorial 2
**
****************************************************************/
#include
#include
#include
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton quit( "Quit" );
quit.resize( 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
a.setMainWidget( &quit );
quit.show();
return a.exec();
}
代码逐行解释
#include
既然程序使用了QFont类,它就需要包含qfont.h头文件.Qt的字体的抽象描述比之X 有很大
的不同,并且在装载和使用上进行了高度的优化.
QPushButton quit( "Quit" );
这一次,按钮显示"Quit",而且当用户点击时,程序确实会退出.但是,这是有原因的.
quit.resize( 75, 30 );
我们给按钮设置了另一个尺寸,因为这次显示的文字比"Hello World!"短多了.我们还可以
使用QPushButton::setAutoResize()或 QFontMetrics来设置合适的尺寸.
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
这里我们让按钮使用了一种新的字体:"Times"族,18点,Bold型.注意,我们当时就创建了这
种字体.
另外,我们还可以改变整个程序的缺省字体.
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
connect() 可能是Qt最重要的核心特点.需注意的是connect() 是QObject 类的静态
(static) 函数,不要把它和socket库中的connect()函数混淆了.
这一行在两个Qt对象(直接或间接继承(inherit)于QObject的对象)建立的一种联接.所有
的 Qt对象都具有signals(发送消息)和slots(接收消息).所有的控件都是 Qt对象,它们都
继承于QWidget,而QWidget则继承于QObject.
这里,按钮quit的clicked()signal被联接到应用a的quit()slots上, 所以,当按钮被点击
时,应用程序会退出.
Signals and Slots 章节有详细的介绍.
程序行为
当你运行这个程序时,你会看到一个只有一个按钮的窗口,它比第一章的那个还小.
练习
试着改变窗口的大小.按下按钮.嗷,connect()函数会带来如此的不同:)
QPushButton中还有哪些可以联接到quit的signals? Hint:QPushButton是继承于QButton
的,同时也继承了QButton的大部分习性.
现在,你可以进入 第三章了.
[前一章] [后一章] [教程目录]
------------------------------------------------------------------------------
--
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)
页面执行时间:2.095毫秒