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毫秒