Qt logo


Chapter 2: Calling it Quits


Screenshot of tutorial two

1Àå¿¡¼­ ¸¸µé¾ú´ø À©µµ¿ì¿¡´Ù ÀÌÁ¦ ¹öưÀ» ´©¸£¸é ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áµÇµµ·Ï ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ.

µðÆúÆ® ÆùÆ®¿ÜÀÇ Á» ´õ Èï¹ÌÁøÁøÇÑ ÆùÆ®¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.

/****************************************************************
**
** Qt tutorial 2
**
****************************************************************/

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

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();
}

Line by Line Walk-Through

    #include <qfont.h>

ÀÌ ÇÁ·Î±×·¥¿¡¼­´Â QFont¸¦ »ç¿ëÇϱ⿡ qfont.h¸¦ includeÇÒ Çʿ䰡 ÀÖ´Ù.

        QPushButton quit( "Quit" );

ÀÌ ºÎºÐ¿¡¼­ ¹öưÀº "Quit"À̶ó°í Ç¥½Ã°¡ µÇ°í »ç¿ëÀÚ°¡ ±× ¹öưÀ» ´­·¶À»¶§ ¾î¶² ÇൿÀ» ÇÏ°Ô µÉ °ÍÀÌ´Ù. Áö±ÝÀº ¾Æ¹«°Íµµ µÇÁö´Â ¾ÊÁö¸¸...

        quit.resize( 75, 30 );

¿ì¸®´Â ¶Ç ´Ù¸¥ »çÀÌÁ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. "Hello World!"º¸´Ù´Â ´õ Å©±â°¡ ´õ Àû±â¿¡ Á» ´õ ÀûÀº »çÀÌÁ ¼±ÅÃÇØ¾ß¸¸ ÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ QPushButton::setAutoResize()¸¦ »ç¿ëÇÒ ¼ö ÀÖ°í ¶Ç´Â QFontMetrics¿¡¼­ ÀûÀýÇÑ »çÀÌÁ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

        quit.setFont( QFont( "Times", 18, QFont::Bold ) );

¿©±â¿¡¼­ ¿ì¸®´Â Å©±â 18ÀÇ ±½Àº Timesü¸¦ »õ·Î ¼±ÅÃÇß´Ù.

¶ÇÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ÀüüÀÇ ±âº» ÆùÆ®¿¡ ´ëÇØ¼­µµ ¹Ù²Ü ¼ö ÀÖ´Ù.

        QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

connect()´Â ¾Æ¸¶µµ QtÀÇ ÇüÅ¿¡¼­ °¡Àå Áß¿äÇÑ °ÍÀÌ´Ù. connect()´Â QObject³»¿¡¼­ static functionÀÓÀ» ÁÖÀÇÇØ¶ó. socket libraryÀÇ connect() function°ú È¥µ¿µÇÁö ¾Êµµ·Ï ÁÖÀÇÇÏ±æ ¹Ù¶õ´Ù.

ÀÌ ¶óÀÎÀº µÎ Qt °´Ã¼(QObject·Î ºÎÅÍ Á÷Á¢ÀûÀÌµç °£Á¢ÀûÀÌµç »ó¼ÓÀ» ¹ÞÀº °´Ã¼µé)µé »çÀÌ¿¡ ÀϹæÇâ ¿¬°áÀ» ¼³Á¤ÇÑ´Ù. ¸ðµç Qt °´Ã¼´Â signals(¸Þ½ÃÁö¸¦ º¸³»´Â)°ú slots(¸Þ½ÃÁö¸¦ ¹Þ´Â)À» °¡Áú ¼ö ÀÖ´Ù. ¸ðµç widgetµéÀº Qt °´Ã¼µéÀÌ´Ù. ±×µéÀº QWidgetÀ» »ó¼ÓÇϱ⿡ QObject¿¡¼­ »ó¼ÓµÈ °ÍÀÌ´Ù.

¿©±â¿¡¼­ quitÀÇ clicked() signalÀº quitÀÇ ÇÑ slot°ú ¿¬°áµÈ´Ù. Áï ¹öưÀÌ ´­·¯Áö¸é ¾ÖÇø®ÄÉÀ̼ÇÀº Á¾·áµÈ´Ù.

Signal°ú Slot ¹®¼­´Â ¼¼ºÎÀûÀÎ ÁÖÁ¦µéÀ» Àß ¼³¸íÇϰí ÀÖ´Ù.

Behavior

ÀÚ ÀÌÁ¦ ÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸ÀÚ. ¿©·¯ºÐÀº 1Àå¿¡¼­ º¸¾Ò´ø °Í°ú ºñ½ÁÇÑ Á» ´õ ÀÛÀº ¹öưÀ¸·Î ä¿öÁø ºñ½ÁÇÑ À©µµ¿ì¸¦ º¼ °ÍÀÌ´Ù.
¿ªÀÚÁÖ: ÄÄÆÄÀϰú ¸µÅ© °úÁ¤Àº 1Àå¿¡ ¼³¸íÇØ ³õ¾Ò´Ù. Âü°íÇÏ±æ ¹Ù¶õ´Ù.

Excercises

À©µµ¿ì Å©±â¸¦ º¯°æ½ÃÄÑ º¸¶ó. ¹öưÀ» ´­·¯ºÁ¶ó. ÀÌ·Ð! connect()´Â ¾à°£ ´Ù¸£°Ô º¸ÀÌ°Ô µÈ´Ù. :)

QPushButton¿¡ ¾î¶² ¶Ç ´Ù¸¥ signalÀ» quit¿¡ ¿¬°á ½Ãų ¼ö Àִ°¡? Hint: QPushButtonÀº QButtonÀ¸·ÎºÎÅÍ ´ëºÎºÐÀÇ ÇൿÀ» »ó¼Ó¹Þ¾Ò´Ù.

ÀÌÁ¦ ¿©·¯ºÐÀº 3ÀåÀ¸·Î °¡µµ µÈ´Ù.

[Previous tutorial] [Next tutorial] [Main tutorial page]