Qt logo


Chapter 1: Hello, World!


Screenshot of tutorial one

ÀÌ Ã¹¹øÂ° ÇÁ·Î±×·¥Àº ´Ü¼øÇÏ°Ô hello-world ¿¹Á¦ ÇÁ·Î±×·¥ÀÌ´Ù. Qt ÇÁ·Î±×·¥À» ½ÃÀÛÇÏ°í ½ÇÇà ½Ã۴µ¥ ÇÊ¿äÇÑ ÃÖ¼ÒÇÑÀÇ °Íµé¸¸ Æ÷ÇÔÇϰí ÀÖ´Ù. À§ÀÇ ±×¸²Àº ÀÌ ÇÁ·Î±×·¥ÀÇ ½º³À¼¦ÀÌ´Ù.
¿ªÀÚ ÁÖ: ¿ª½Ã C++À̶ó ´ë¼Ò¹®ÀÚ ±¸ºÐÇÕ´Ï´Ù. ÁÖÀÇÇϼ¼¿ä. ¶ÇÇÑ ÀúÀåÀº ÆÄÀϸí.cppÀÔ´Ï´Ù.

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

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

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

Line by Line Walk-Through

    #include <qapplication.h>

ÀÌ ¶óÀÎÀº QApplication Ŭ·¡½ºÀÇ Á¤ÀǸ¦ Æ÷ÇÔÇÑ´Ù. Qt¸¦ »ç¿ëÇÏ´Â ¸ðµç ¾ÖÇø®ÄÉÀ̼ǿ¡´Â Á¤È®ÇÏ°Ô ÇѰ³ÀÇ QApplication °´Ã¼°¡ ÀÖ¾î¾ß ÇÑ´Ù. QApplicationÀº default font¿Í cursor °°Àº ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ¸®¼Ò½ºµéÀ» °ü¸®ÇÑ´Ù.

    #include <qpushbutton.h>

ÀÌ ¶óÀÎÀº QPushButton Ŭ·¡½ºÀÇ Á¤ÀǸ¦ Æ÷ÇÔÇÑ´Ù.

QPushButtonÀº »ç¿ëÀÚ°¡ ´­·¶´Ù ¶Ã´ÙÇÏ´Â ÀüÇüÀûÀÎ GUI ´©¸§ ¹öưÀÌ´Ù. ±×°ÍÀº ¸ðµç ´Ù¸¥ widgetµéó·³ ÀڽŸ¸ÀÇ look and feelÀ» °ü¸®ÇÑ´Ù. widgetÀº »ç¿ëÀÚ ÀÔ·ÂÀ» ó¸®ÇÒ ¼ö ÀÖ°í, ±×¸®°í ±×·¡ÇÈÀ» ±×¸± ¼ö ÀÖ´Â »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º °´Ã¼ÀÌ´Ù. ÇÁ·Î±×·¡¸Ó´Â look and feel°ú color¿Í °°Àº ¸¹Àº ÀÛÀº ¼Ó¼ºµéÀ» ¸ðµÎ º¯°æ½Ãų ¼ö ÀÖ´Ù. ¹°·Ð widgetÀÇ ³»¿ëµµ Æ÷ÇÔÇØ¼­ ¸»ÀÌ´Ù. QPushButtonÀº ÅØ½ºÆ® ¶Ç´Â pixmapÀ¸·Î º¸¿©Áú ¼ö ÀÖ´Ù.

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

main() ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÇ ½ÃÀۺκÐÀÌ´Ù.

argc´Â command-line ÀÎÀÚ¼öÀ̰í, argv´Â command-line ÀÎÀÚÀÇ ¹è¿­ÀÌ´Ù. À̰ÍÀº C/C++ ÇüÅÂÀÌ´Ù. À̰ÍÀº QtÀÇ Æ¯º°ÇÑ °ÍÀº ¾Æ´ÏÁö¸¸, Qt´Â ÀÌ·¯ÇÑ ÀÎÀÚµéÀ» ÇÊ¿ä·Î ÇÑ´Ù.

        QApplication a( argc, argv );

a ´Â ÀÌ ÇÁ·Î±×·¥ÀÇ QApplicationÀÌ´Ù. ¿©±â¿¡¼­ QApplicationÀº »ý¼ºµÇ°í command-line ÀÎÀÚ(Áï, X11ÇÏÀÇ -display ¿Í °°Àº)µéÀ» ó¸®ÇÑ´Ù.

ÁÖÀÇ: QtÀÇ ¾î¶°ÇÑ window-system ºÎºÐÀÌ »ç¿ëµÇ±â Àü¿¡ QApplication °´Ã¼°¡ »ý¼ºµÇ¾î¾ß¸¸ ÇÑ´Ù.

        QPushButton hello( "Hello world!" );

QApplicationÈÄ¿¡, óÀ½ÀÇ window-system code°¡ ¿Â´Ù. push button Çϳª¸¦ »ý¼ºÇÑ´Ù.

ÀÌ ¹öưÀº "Hello world!"¶ó´Â ÅØ½ºÆ®¸¦ º¸¿©ÁØ´Ù.

        hello.resize( 100, 30 );

¹öưÀÇ Å©±â¸¦ window system frame¿¡¼­ 100 pixel Æø°ú 30 pixel ³ôÀÌ·Î ¼ÂÆÃÇÑ´Ù. ¿©±â¼­´Â ¹öưÀÇ À§Ä¡¸¦ °í·ÁÇÏÁö ¾Ê°í ±âº»°ªÀ¸·Î µÐ´Ù.

        a.setMainWidget( &hello );

push buttonÀ» main widget¿¡ ºÙÀδÙ. »ç¿ëÀÚ°¡ main widgetÀ» ´ÝÀ¸¸é ¾ÖÇø®ÄÉÀ̼ÇÀº Á¾·áµÈ´Ù.

¹Ýµå½Ã main widgetÀ» °¡Áú ÇÊ¿ä´Â ¾øÁö¸¸ ´ë´Ù¼ö ÇÁ·Î±×·¥µéÀº »ç¿ëÇÑ´Ù.

        hello.show();

WidgetÀº »ý¼ºÇϱ⸸ Çϸé Àý´ë º¸ÀÌÁö ¾Ê´Â´Ù. visibleÇÏ°Ô Çϱâ À§Çؼ­´Â ¹Ýµå½Ã show() ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

        return a.exec();

ÀÌ ºÎºÐÀÌ main()¿¡¼­ Qt·Î Á¦¾î¸¦ ³Ñ±â´Â ºÎºÐÀÌ´Ù. exec()´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áµÉ¶§ returnµÈ´Ù.

exec()¿¡¼­ Qt´Â »ç¿ëÀÚ¿Í system event¸¦ ¹Þ°í ó¸®Çϰí ÀûÀýÇÑ widgetÀ» ³Ñ°ÜÁØ´Ù.

    }

Behavior

¹Ýµå½Ã ÀÌ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ°í ½ÇÇà½ÃŰ¼¼¿ä.

¿ªÀÚ ÁÖ : ÄÄÆÄÀÏ ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

ÄÄÆÄÀÏ : #g++ -c ÆÄÀϸí.cpp -I/usr/include -I/usr/X11R6/include -I/usr/include/qt
¸µÅ©°úÁ¤ : #g++ -o ½ÇÇàÆÄÀÏ¸í ÆÄÀϸí.o -L/usr/lib -L/usr/X11R6/lib -lqt -lX11 -lXext
ÀÌ·¯°í ³ª¸é ½ÇÇàÆÄÀÏÀÌ ¸¸µé¾î Áý´Ï´Ù.

ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ¸é °¡Àå À¯¸íÇÑ ´Ü¾îÀÎ Hello World!¶ó°í ÀûÇô ÀÖ´Â ´Ü¼øÇÑ ¹öưÀ¸·Î ²Ë ä¿öÁø ÀÛÀº À©µµ¿ì¸¦ º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù.

Excercises

¾ÖÇø®ÄÉÀÌ¼Ç À©µµ¿ìÀÇ Å©±â¸¦ Á¶ÀýÇØ º¸¼¼¿ä. ¹öưÀ» ´­·¯ º¸¼¼¿ä. ¸¸ÀÎ X11À» »ç¿ëÇÑ´Ù¸é -geometry ¿É¼ÇÀ» °¡Áö°í ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸¼¼¿ä.(e.g. -geometry 100x200+10+20)

ÀÌÁ¦ chapter two.À¸·Î °¡¼Åµµ µË´Ï´Ù.


[Next tutorial] [Main tutorial page]