ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¹®¼´Â QTŸŶÀ» ÀÌ¿ëÇÑ GUI ÇÁ·Î±×·¡¹ÖÀÇ ¼Ò°³¸¦ À§ÇØ ÀÛ¼ºµÇ¾ú´Ù. QTÇÁ·Î±×·¡¹Ö¿¡ ÀÌÁ¦ ¸· ÀÔ¹®ÇÏ·Á´Â °³¹ßÀÚ¿¡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù. QT¸¦ ¾ÆÁ÷ Á¢ÇØ º»ÀûÀÌ ¾ø´Ù¸é ÀÌ ¹®¼¸¦ Àбâ Àü¿¡ QT WhitepaperÀ» ¸ÕÀú ÀÐ¾î º¸±â¹Ù¶õ´Ù.
À̹®¼¸¦ QT Assistant¿Í ÇÔ²² ÀÐÀ¸¸é ¸¹Àº µµ¿òÀÌ µÉ°ÍÀÌ´Ù. QT Assistant¿¡ ´ëÇÑ ³»¿ëÀº QT WhitepaperÀ» Âü°íÇϱ⠹ٶõ´Ù.
QT ¹Ì´Ï»çÀÌÆ®·Î 1 ¾È³ç ¼¼»ó!
óÀ½ ÀÛ¼ºÇÒ ÇÁ·Î±×·¥Àº Àú À¯¸íÇÑ hello worldÃâ·ÂÀÇ QT¹öÁ¯ÀÌ´Ù. ±×·¯³ª hello world·Î ÇÏ¸é ³Ê¹« ½É½ÉÇÒ°Í °°¾Æ¼ ¾È³ç ¼¼»ó!À» Ãâ·ÂÇϵµ·Ï Çß´Ù. ´ÙÀ½Àº ½ÇÇà½ÃŲ ÇÁ·Î±×·¥ÀÇ ½ºÅ©¸° ¼¦ÀÌ´Ù. #include <qapplication.h> #include <qpushbutton.h> #include <qstring.h> int main(int argc, char **argv) { QApplication a(argc, argv); QPushButton hello(QString::fromLocal8Bit("¾È³ç ¼¼»ó!"), 0); hello.resize(100, 30); a.setMainWidget(&hello); hello.show(); return a.exec(); } 1.1 ÁÙ´ÜÀ§ ¼³¸í#include <qapplication.h>QApplication Ŭ·¡½º°¡ ¼±¾ðµÈ ÀÎŬ·çµå ÆÄÀÏÀÌ´Ù. QT¸¦ ÀÌ¿ëÇÏ´Â ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀº QApplicationÀ» ÇÊ¿ä·Î ÇÑ´Ù. ±×·¯¹Ç·Î ¹Ýµå½Ã Æ÷ÇԵǾî¾ßÇÒ ÀÎŬ·çµå ÆÄÀÏÀÌ´Ù. QApplicationÀº ±âº»ÆùÆ®¿Í, Ä¿¼¿Í °°Àº ¾ÖÇø®ÄÉÀÌ¼Ç Àü¿ªÀûÀÎ ÀÚ¿øµéÀ» °ü¸®ÇÏ°Ô µÈ´Ù. #include <qpushbutton.h>QPushButtonŬ·¡½º°¡ ¼±¾ðµÈ ÀÎŬ·çµå ÆÄÀÏÀÌ´Ù.
QPushButtonÀº Ǫ½¬ ¹öưÀ» ±¸ÇöÇϱâ À§Çؼ »ç¿ëµÇ´Â Ŭ·¡½º´Ù. À̰ÍÀº ´Ù¸¥ ¸ðµç À§Á¬ÀÌ ±×·¯ÇϵíÀÌ ÀڽŸ¸ÀÇ look and feelÀ» °ü¸®ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¸Ó´Â »ö°ú °°Àº ¿ä¼ÒµéÀ» Á¶Á¤ÇÔÀ¸·Î½á Ǫ½¬ ¹öưÀÇ look and feelÀ» Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. Ãâ·ÂµÇ´Â ¹®ÀÚ´Â ´Ü¼øÇÑ ÅØ½ºÆ®µµ °¡´ÉÇϸç QPixmapÀÇ À̿뵵 °¡´ÉÇÏ´Ù. int main(int argc, char **argv) {main()ÇÔ¼ö´Â ¸ðµç ÇÁ·Î±×·¥¿¡¼ ÇÊ¿ä·Î ÇÑ´Ù. QT¶óÀ̺귯¸®¸¦ È£ÃâÇϱâÀü¿¡ ÇÊ¿äÇÑ ¿©·¯°¡Áö ÃʱâÈ °ªµîÀ» Àü´ÞÇϱâ À§Çؼ »ç¿ëÇÑ´Ù.
argc´Â ¸í·ÉÇà ÀÎÀÚÀÇ °¹¼öÀ̰í argv´Â ¸í·ÉÇà ÀÎÀÚÀÇ ¹è¿ÀÌ´Ù. À̰͵éÀº C/C++ÀÇ ±âº»ÀûÀÎ ¸ð½ÀÀ¸·Î, QT¿¡ Æ¯ÈµÈ ¸ð½ÀÀº ¾Æ´Ï´Ù. ¾î¶µç QT ¾ÖÇø®ÄÉÀ̼ÇÀº ¹Ýµå½Ã ÀÌµé º¯¼ö¸¦ ÇÊ¿ä·Î ÇÑ´Ù. QApplication a(argc, argv);a´Â ÀÌ ÇÁ·Î±×·¥ÀÇ QApplicationÀÌ´Ù. QPushButton hello(QString::fromLocal8Bit("¾È³ç ¼¼»ó!"), 0);
QApplicationÈÄ¿¡ óÀ½ µîÀåÇÏ´Â À©µµ¿ì ½Ã½ºÅÛ ÄÚµå·Î Ǫ½¬ ¹öưÀ» »ý¼ºÇÑ´Ù. ÀÌ Çª½¬¹öưÀº "¾È³ç ¼¼»ó!"À»Ãâ·ÂÇÏ°Ô µÈ´Ù. µÎ¹øÂ° ÀÎÀÚ·Î ÁÖ¾îÁø 0Àº Ǫ½¬¹öư ÀÚ½ÅÀÌ ºÎ¸ð À©µµ¿ì°¡ µÈ´Ù´Â ¶æÀÌ´Ù. Ǫ½¬ ¹öưÀÇ Å©±â¸¦ º¯°æÇϱâ À§Çؼ ¾Æ·¡ÀÇ Äڵ带 »ç¿ëÇß´Ù.hello.resize(100,30);ÀÌ ¹öưÀº 100pixelÀÇ ³ÐÀÌ¿Í 30pixelÀÇ ³ôÀ̸¦ °¡Áö°Ô µÈ´Ù. a.setMainWidget(&hello);Ǫ½¬¹öưÀ» ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸ÞÀÎ À§Á¬À¸·Î ¼±¾ðÇÑ´Ù. ¸¸¾à À¯Àú°¡ ¸ÞÀÎ À§Á¬À» ´Ý°Ô µÇ¸é ¾ÖÇø®ÄÉÀ̼ÇÀº Á¾·áÇÏ°Ô µÉ °ÍÀÌ´Ù.
¸ÞÀÎ À§Á¬À» »ý¼ºÇß´Ù¸é À̰ÍÀ» Ãâ·ÂÇÒ°ÍÀ» ¸í½ÃÇÑ´Ù. hello.show();setMainWidget¸¦ ÀÌ¿ëÇØ¼ ¸ÞÀÎ À§Á¬À» ¸¸µé¾ú´Ù°í ÇØ¼ À̰ÍÀÌ Áï½Ã ȸ鿡 Ãâ·ÂµÇÁö´Â ¾Ê´Â´Ù ¹Ýµå½Ã show()¸¦ È£ÃâÇØ¾ßÁö¸¸ ºñ·Î¼ ȸ鿡 Ãâ·ÂÀÌ µÈ´Ù. return a.exec();QTÀÇ Á¦¾î±ÇÀ» main()¿¡ ³Ñ±ä´Ù. À̶§ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Á¾·á °ªµµ ³Ñ°ÜÁÖ°Ô µÈ´Ù. 1.2 ÄÄÆÄÀÏ# g++ -c -pipe -Wall -W -O2 -DNO_DEBUG -I/usr/lib/qt-3.2/include -o hello.o hello.cc # g++ -o hello hello.o -L/usr/lib/qt-3.2/lib -L/usr/X11R6/lib -lqt -lXext -lX11 -lÀ§¿Í °°Àº ¹æ¹ýÀ¸·Î ¼ö°í½º·´°Ô ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ°ÚÁö¸¸, ¿©±â¿¡¼´Â MakefileÀ» ÀÌ¿ëÇÒ °ÍÀÌ´Ù. MakefileÀÇ ÀÛ¼º°ú »ç¿ë¹æ¹ýÀº Make »ç¿ëÇϱâ (2)¸¦ Âü°íÇϱ⠹ٶõ´Ù. 1.3 ¿¬½À
À©µµ¿ìÀÇ Å©±â¸¦ º°æÇغ¸ÀÚ. ¹öưÀ» ´·¯º¸ÀÚ. ¸¸¾à X Windows »ó¿¡¼ Ãâ·ÂÇÑ´Ù¸é -geometry ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ ½ÇÇà½ÃÄÑ º¸µµ·Ï ÇÏÀÚ.(¿¹: -geometry 100x200+10+20) 2 Á¾·á¹öưÀÇ ÀÛ¼º
¾ÕÀå¿¡¼ ¿ì¸®´Â ¹öư À§Á¬¸¸À¸·Î ±¸¼ºµÈ ¾ÆÁÖ °£´ÜÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇß´Ù. À̹ø¿¡´Â ¹öư¿¡ ¾×¼ÇÀ» Ãß°¡Çؼ ¹öưÀ» Ŭ¸¯ÇÒ°æ¿ì Á¾·á(quit)ÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇØ º¸µµ·Ï ÇϰڴÙ. ÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ¸é¼ ¿ì¸®´Â QT¿¡¼ Á¦°øÇÏ´Â ½Ã±×³Î ½½·Ô °³³ä¿¡ ´ëÇØ¼ ¹è¿ì°Ô µÈ´Ù. #include <qapplication.h> #include <qpushbutton.h> #include <string.h> #define print8(str) QString::fromLocal8Bit(str) int main(int argc, char **argv) { QApplication a (argc, argv); QPushButton quit(print8("Á¾·á"), 0); quit.resize(130, 60); quit.setFont(QFont("baekmuk headline", 20, QFont::Bold)); QObject::connect(&quit, SIGNAL(clicked()), &a, SLOT(quit())); a.setMainWidget(&quit); quit.show(); return a.exec(); }
´ÙÀ½Àº ½ÇÇà °á°úÀÌ´Ù. ![]() 2.1 ÁÙ´ÜÀ§ ¼³¸í#include <qfont.h>ÀÌ ÇÁ·Î±×·¥Àº QFont¸¦ ÀÌ¿ëÇØ¼ Ãâ·ÂµÇ´Â ÆùÆ®ÀÇ ¸ð¾çÀ» Á¶Á¤ÇÑ´Ù. À̸¦ À§Çؼ qfont.h Çì´õÆÄÀÏÀ» Ãß°¡ÇØ¾ß ÇÑ´Ù. QTÀÇ ÆùÆ® Ãß»óÀº °æ¾ÇÀÇ ¼öÁØÀÎ X¿¡¼ Á¦°øÇÏ´Â ÆùÆ®¿Í ´Ù¸¥ ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. À̸¦ ÀÌ¿ëÇØ¼ Á»´õ ¹Ì·ÁÇÑ ÆùÆ®ÀÇ Ãâ·ÂÀÌ °¡´ÉÇÏ´Ù. QPushButton quit(print8("Á¾·á"), 0);
À̹ø¿¡´Â "Á¾·á"¸Þ½ÃÁö¸¦ º¸³»´Â Ǫ½¬¹öư À§Á¬À» ¸¸µé¾ú´Ù. ÀÌ ¹öưÀº ÃÖ»óÀ§ ºÎ¸ð À§Á¬À¸·Î »ç¿ë µÉ °ÍÀ̹ǷΠ0À» »ç¿ëÇϰí ÀÖ´Ù. quit.resize(130, 60);¹öưÀÇ Å©±â´Â ÆùÆ®ÀÇ Å©±â¿Í ±æÀÌ¿¡ ¸Âµµ·Ï 130X60À¸·Î ÁöÁ¤Çß´Ù. quit.setFont(QFont("baekmuk headline", 20, QFont::Bold));
ÆùÆ®¸¦ ¹é¹¬¿¡¼ Á¦°øÇÏ´Â baekmuk headline·Î ¼±ÅÃÇϰí Å©±â´Â 20À» °¡Áö´Â µÎ²¨¿î(Bold)ÆùÆ®·Î °áÁ¤Çß´Ù. QApplication::setFont()¸¦ »ç¿ëÇÏ¸é ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëµÇ´Â ±âº» ÆùÆ®¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. QObject::connect(&quit, SIGNAL(clicked()), &a, SLOT(quit()));connect()´Â QT¿¡¼ Á¦°øÇÏ´Â °¡Àå ÁÖ¿äÇÑ ±â´ÉÁßÀÇ ÇϳªÀÌ´Ù. connect()´Â QObjectÀÇ static ÇÔ¼öÀÓÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. ¼ÒÄÏ ¶óÀ̺귯¸®¿¡¼ Á¦°øÇÏ´Â connect()¿Í´Â ÀüÇô´Ù¸£´Ù.
ÀÌ ÄÚµå´Â µÎ°³ÀÇ QT °´Ã¤¸¦ ´Ü¹æÇâÀ¸·Î ¿¬°áÇÏ´Â ÀÏÀ» ÇÑ´Ù(°´Ã¼´Â QObject¿¡¼ Á÷°£Á¢ÀûÀ¸·Î »ó¼ÓµÈ °ÍµéÀÌ´Ù.). ¸ðµç QT °´Ã¼µéÀº ¸Þ½ÃÁö¸¦ º¸³»±â À§ÇÑ ½Ã±×³Î°ú ¸Þ½ÃÁö¸¦ ¹Þ±â À§ÇÑ ½½·ÔÀ» °¡Áö°í ÀÖ´Ù. ¸ðµç À§Á¬Àº QT °´Ã¼°¡ µÈ´Ù.
¿©±â¿¡¼ ¿ì¸®°¡ quit¹öư(À§Á¬)ÀÇ ÀÇ clicked()½Ã±×³ÎÀº quit()½½·Ô°ú ¿¬°áµÇ¾î ÀÖ´Ù. clicked()½Ã±×³ÎÀº ¹öưÀ» Ŭ¸¯ÇÒ ¶§ ¹ß»ýÇÑ´Ù. ±×·¯¹Ç·Î ¿ì¸®°¡ ¹öưÀ» Ŭ¸¯ÇÏ°Ô µÇ¸é ¸Þ½ÃÁö°¡ quit()½½·ÔÀ¸·Î Àü´ÞµÇ°í ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¾·áÇÏ°Ô µÈ´Ù. 2.2 ¿¬½À
À©µµÀÇ Å©±â¸¦ º¯°æÇ϶ó. ¹öưÀ» Ŭ¸¯ÇßÀ» ¶§ Á¾·áµÇ´Â ´ë½Å "¿ó½º!"¹®ÀÚ¿À» Ãâ·ÂÇϵµ·Ï Äڵ带 ¼öÁ¤ÇØ º¸¶ó.
QPushButtonÀÇ ´Ù¸¥ ½Ã±×³ÎÀ» quit¿¡ ¿¬°áÇØº¸µµ·Ï ÇÏÀÚ. ÈùÆ® QPushButtonÀº QButtonÀ¸·Î ºÎÅÍ »ó¼ÓµÈ´Ù. 3 (À§Á¬ °ü°è)Family Values
Áö±Ý±îÁöÀÇ ¿¹Á¦´Â ´ÜÁö ÇϳªÀÇ À§Á¬¸¸ÀÌ »ç¿ëµÇ¾ú°í, ´ç¿¬È÷ ÀÌ À§Á¬ÀÌ ºÎ¸ð À§Á¬ÀÌ µÇ¾ú´Ù. À̹ø¿¡ ÀÛ¼ºÇÏ´Â ÇÁ·Î±×·¥Àº ºÎ¸ðÀ§Á¬°ú ÀÚ½ÄÀ§Á¬À» °¡Áö´Â Á»´õ ½ÇÁúÀûÀÎ GUI¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸ð½ÀÀ» º¸¿©ÁØ´Ù. #include <qpushbutton.h> #include <qfont.h> #include <qvbox.h> #define print8(str) QString::fromLocal8Bit(str) int main(int argc, char **argv) { QApplication a(argc, argv); QVBox box; box.resize(200, 120); QPushButton quit(print8("Á¾·á"), &box); quit.setFont(QFont("baekmuk gulim", 18, QFont::Bold)); QObject::connect(&quit, SIGNAL(clicked()), &a, SLOT(quit())); a.setMainWidget(&box); box.show(); return a.exec(); } 3.1 ÁÙ´ÜÀ§ ºÐ¼®![]() #include <qvbox.h>ÀÌ ÄÚµå´Â ÀÚ½ÄÀ§Á¬À» ¹èÄ¡Çϱâ À§Çؼ ·¹À̾ƿô(layout) Ŭ·¡½º¸¦ »ç¿ëÇÑ´Ù. À̸¦ À§Çؼ qbox.h¸¦ ÀÎŬ·çµå ½ÃÄ×´Ù. QVBox box;ÀÌ Å¬·¡½º´Â ¼öÁ÷À¸·Î À§Á¬À» ¹è¿ÇÒ¼ö ÀÖ´Â °£´ÜÇÑ ÄÁÅ×À̳ʸ¦ »ý¼ºÇÑ´Ù. QVBox´Â ÀÚ½ÄÀ§Á¬À» ÀÚµ¿ÀûÀ¸·Î ¼öÁ÷ Á¤¿ÇÑ´Ù. À§Á¬ÀÇ Å©±â´Â ÀÚ½ÄÀ§Á¬ÀÇ Å©±â(QWidget::sizePolicy())Á¤Ã¥¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ´Ù. box.resize(200, 120);°¡·Î 200, ¼¼·Î 120 Çȼ¿ÀÇ Å©±â¸¦ °¡Áö´Â QVBox ÄÁÅ×À̳ʸ¦ »ý¼ºÇÑ´Ù. QPushButton quit("Á¾·á", &box);
ÀÌÁ¦ ÀÚ½Ä À§Á¬ÀÌ ¸¸µé¾î Á³´Ù.
QPushButtonÀº "Á¾·á"¹®ÀÚ¿À» °¡Áö¸ç, box¸¦ ºÎ¸ðÀ§Á¬À¸·Î ÇØ¼ »ý¼ºµÈ´Ù. ÀÚ½Ä À§Á¬Àº ¾ðÁ¦³ª ºÎ¸ð À§Á¬ À§¿¡ ³õÀÌ°Ô µÈ´Ù.
ºÎ¸ð À§Á¬ÀÎ QVBox´Â ÀÚ½ÅÀÇ À§¿¡ ³õÀÌ´Â À§Á¬À» ÀÚµ¿ÀûÀ¸·Î (¼¼·Î¹æÇâÀ¸·Î)Áß¾Ó¿¡ ³õÀ̵µ·Ï ÇÑ´Ù box.show();ºÎ¸ðÀ§Á¬ÀÌ º¸À̰Եɶ§, show()¸¦ È£ÃâÇØ¾ßÁö ÀÚ½ÅÀÇ ÀÚ½Ä À§Á¬µéÀÌ º¸¿©Áö°Ô µÈ´Ù.
ÀÌÁ¦ ¹öưÀº ´õÀÌ»ó À§Á¬ Àüü¸¦ ä¿ìÁö ¾È°Ô µÈ´Ù. ¹öưÀº ºÎ¸ðÀ§Á¬ À§¿¡¼ ³ô¿©¼ ÀÏÁ¤ÇÑ Å©±â¸¦ À¯ÁöÇÏ°Ô µÈ´Ù. »ç¿ëµÇ´Â ¹öưÀÇ Å©±â¿Í À§Ä¡ÀÇ ´ëÇÑ Á¤Ã¥Àº QWidget::sizeHint()¿Í QWidget::setSizePolicy()ÀÇ ÇÔ¼ö¸¦ ÅëÇØ¼ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. 3.2 ¿¬½À
À©µµ¿ìÀÇ Å©±â¸¦ º¯°æÇØ º¸ÀÚ. ¹öưÀÇ Å©±â°¡ ¾î¶»°Ô º¯°æµÇ´ÂÁö.. ¹öưÀÇ À§Ä¡°¡ ¾î¶»°Ô º¯°æµÇ´ÂÁö.. ±×¸®°í ÆùÆ®ÀÇ Å©±â°¡ º¯ÇÒ°æ¿ì ¹öưÀÌ ¾î¶»°Ô º¯ÇÏ´ÂÁö µî¿¡ ´ëÇØ¼ Å×½ºÆ® ÇØº¸µµ·Ï ÇÏÀÚ. 4 À§Á¬ °¡Áö°í ³î±â
À̹ø ¿¹Á¦´Â »ç¿ëÀÚ À§Á¬À» ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁÙ °ÍÀÌ´Ù. ¾î¶»°Ô À§Á¬ÀÇ ÃÖ´ë/ÃÖ¼Ò Å©±â¸¦ º¯°æÇÒ ¼ö ÀÖ´ÂÁöµî¿¡ ´ëÇØ¼ ¾Ë¾Æ º¼ °ÍÀÌ´Ù. #include <qapplication.h> #include <qpushbutton.h> #include <qfont.h> #define print8(str) QString::fromLocal8Bit(str) class MyWidget : public QWidget { public: MyWidget(QWidget *parent=0, const char *name = 0); }; MyWidget::MyWidget(QWidget *parent, const char *name) : QWidget(parent, name) { setMinimumSize(200, 120); setMaximumSize(200, 120); QPushButton *quit = new QPushButton(print8("Á¾·á"), this, "quit"); quit->setFont(QFont("baekmuk gulim", 18, QFont::Bold)); quit->setGeometry(62,60,75,30); connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); } int main(int argc, char **argv) { QApplication a (argc, argv); MyWidget w; w.setGeometry(100,100,200,120); a.setMainWidget(&w); w.show(); return a.exec(); } ![]() 4.1 ÁÙ´ÜÀ§ ¼³¸íclass MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent=0, const char *name=0);
}
¿ì¸®´Â MyWidget¶ó´Â »õ·Î¿î Ŭ·¡½º¸¦ »ý¼ºÇß´Ù. ÀÌ Å¬·¡½º´Â QWidget·Î ºÎÅÍ »ó¼ÓµÈ Ŭ·¡½º À̹ǷΠÃÖ»óÀ§ ·¹º§À©µµ¿ì¿Í ÀÚ½Ä À§Á¬¸ðµÎ·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.
ÀÌ Å¬·¡½º´Â ´ÜÁö ÇϳªÀÇ ¸É¹öÀÎ »ý¼ºÀÚ¸¸À» °¡Áö°í ÀÖ´Ù(ÀÌ ¹ì¹ö´Â QWidget·Î ºÎÅÍ»ó¼ÓµÈ ¸â¹ö¿¡ ´õÇØÁö°Ô µÈ´Ù.). »ý¼ºÀڴ ǥÁØ QTÀ§Á¬ »ý¼ºÀÚÀÌ´Ù. ¿©·¯ºÐÀÌ »ç¿ëÀÚ Á¤ÀÇ À§Á¬À» ¸¸µé°íÀÚ ÇÒ¶§ »ý¼ºÀÚ´Â À§¿Í ºñ½ÁÇÑ ¸ð½ÀÀ» °¡Áö°Ô µÈ´Ù.
ù¹øÂ° ÀÎÀÚ´Â ºÎ¸ðÀ§Á¬À» ÁöÁ¤Çϱâ À§Çؼ »ç¿ëÇϴµ¥, ºÎ¸ðÀ§Á¬À¸·Î »ç¿ëµÉ ¼ö ÀÖÀ¸¹Ç·Î NULLÀÌ »ç¿ëµÇ¾îÁö°í ÀÖ´Ù. ÀÌ À§Á¬Àº ±âº»ÀûÀ¸·Î Ãë»óÀ§ À©µµ¿ìÀÇ À§Á¬À¸·Î »ý¼ºµÈ´Ù.
µÎ¹øÂ° ÀÎÀÚ´Â À§Á¬ÀÇ À̸§ÀÌ´Ù. À̰ÍÀº À©µµ¿ì³ª ¹öư¿¡ ³ª¿À´Â ¹®ÀÚµéÀÌ ¾Æ´Ï´Ù. ÀÌ À̸§Àº ³ªÁß¿¡ ¿©·¯°³ÀÇ À§Á¬ÀÌ »ç¿ëµÉ °æ¿ì À̵éÀ» ½±°Ô ±¸ºÐÇØ¼ ºÐ¸®Çϱâ À§Çؼ ȤÀº µð¹ö±ëÀ» À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. {
setMinimumSize(200, 120);
setMaximumSize(200, 120);
ÀÌ À§Á¬Àº Å©±â¸¦ º¯°æÇÒ ¼ö ¾øµµ·Ï ¸¸µé°ÍÀÌ´Ù. ±×·¯¹Ç·Î À§Á¬ÀÇ ÃÖ´ëÅ©±â¿Í ÃÖ¼ÒÅ©±â¸¦ µ¿ÀÏÇÏ°Ô ÇÏ´Â ¹æ¹ýÀ¸·Î º¯°æ ºÒ°¡´ÉÇÏ°Ô ¸¸µé¾ú´Ù. ´ÙÀ½ Àå¿¡¼ ¿ì¸®´Â À¯Àú·Î ºÎÅÍ À§Á¬ÀÇ Å©±â º¯°æµî¿¡ ´ëÇÑ ¿äûÀ» ¹Þ¾ÒÀ» ¶§ ¾î¶»°Ô ¹ÝÀÀÇÒÁö¿¡ ´ëÇØ¼ ¾Ë¾Æ º¼ °ÍÀÌ´Ù. QPushButton *quit = new QPushButton(print8("Á¾·á"), this, "quit");
quit->setFont(QFont("baekmuk gulim", 18, QFont::Bold));
quit->setGeometry(62,60,75,30);
¿ì¸®´Â ¿©±â¿¡¼ "quit"¶ó´Â À̸§À» °¡Áö´Â ÀÚ½Ä ¹öư À§Á¬À» »ý¼ºÇß´Ù. ÀÌ ¹öưÀº "Á¾·á"¶ó°í Ç¥½ÃµÇ¸ç, »ç¿ëµÇ´Â ÆùÆ®·Î gulimÀ» ¼³Á¤Çß´Ù. connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()) );MyWidgetŬ·¡½º´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ °´Ã¼¸¦ ¾Ë ¼ö ¾øÀ¸¹Ç·Î ¿¬°áµÉ °´Ã¼°¡ qAppÀÓÀ» ¸í½ÃÇϰí ÀÖ´Ù. int main(int argc, char **argv) { QApplication a (argc, argv); MyWidget w; w.setGeometry(100,100,200,120); a.setMainWidget(&w); w.show(); return a.exec(); }¿©±â¿¡¼ ¿ì¸®°¡ ¸¸µç À§Á¬À» ¸ÞÀÎÀ§Á¬À¸·Î ÇØ¼ ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇà½ÃÄ×´Ù.
ÀÌ ÇÁ·Î±×·¥Àº ¾Õ¼¸¸µé¾î º¸¾Ò´ø ÇÁ·Î±×·¥°ú ºñ½ÁÇÏ´Ù. ´Ù¸¥ Á¡ÀÌ ÀÖ´Ù¸é À§Á¬À» »ý¼ºÇϱâ À§ÇÑ ¸î°¡Áö ºÎºÐµéÀÏ °ÍÀÌ´Ù. 4.2 ¿¬½À
5 ºí·°ÀÇ »ý¼º
À̹ø ¿¹Á¦´Â ¿©·¯°³ÀÇ À§Á¬À» »ý¼ºÇϰí, °¢ À§Á¬¿¡¼ÀÇ ½Ã±×³Î°ú ½½·ÔÀ» ¾î¶»°Ô Á¦¾îÇÏ´ÂÁö¿Í À©µµ¿ìÁîÀÇ Å©±âº¯°æ À̺¥Æ®¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. #include <qapplication.h> #include <qpushbutton.h> #include <qslider.h> #include <qlcdnumber.h> #include <qfont.h> #include <qvbox.h> #define LocalKor(str) QString::fromLocal8Bit(str) class MyWidget : public QVBox { public : MyWidget(QWidget *parent=0, const char *name=0); }; MyWidget::MyWidget(QWidget *parent, const char *name) : QVBox(parent, name) { QPushButton *quit = new QPushButton(LocalKor("Á¾·á"), this, "quit"); quit->setFont(QFont("baekmuk headline", 18, QFont::Bold)); connect(quit, SIGNAL(clicked()), qApp, SLOT(quit())); QLCDNumber *lcd = new QLCDNumber(2, this, "lcd"); QSlider *slider = new QSlider(Horizontal, this, "slider"); slider->setRange(0,99); slider->setValue(0); connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int))); } int main(int argc, char **argv) { QApplication a(argc, argv); MyWidget w; a.setMainWidget(&w); w.show(); return a.exec(); } 5.1 ÁÙ´ÜÀ§ ºÐ¼®#include <qapplication.h> #include <qpushbutton.h> #include <qslider.h> #include <qlcdnumber.h> #include <qfont.h> #include <qvbox.h>qslider.h, qlcdnumber.h ÀÇ »õ·Î¿î Çì´õÆÄÀÏÀÌ ÀÎŬ·çµå µÇ¾ú´Ù. À̵é Çì´õÆÄÀÏÀº QSlider¿Í QLCDNumberÀ§Á¬À» »ç¿ëÇϱâ À§Çؼ ÇÊ¿äÇÏ´Ù. qvbox.h ´Â QT¿¡¼ ÀÚµ¿ÀûÀÎ ·¹À̾ƿôÀÇ Áö¿øÀ» À§Çؼ »ç¿ëÇÑ´Ù. class MyWidget : public QVBox
{
public :
MyWidget(QWidget *parent=0, const char *name=0);
};
MyWidget::MyWidget(QWidget *parent, const char *name)
: QVBox(parent, name)
{
MyWidet´Â QWidget°¡ ¾Æ´Ñ QVBox·Î ºÎÅÍ »ó¼ÓµÇ¾ú´Ù. QVBox´Â Æ÷ÇÔÇϰí ÀÖ´Â ÀÚ½ÄÀ§Á¬À» ÀÚµ¿ÀûÀ¸·Î (¼öÁ÷¹æÇâÀ¸·Î) ·¹À̾ƿôÀ» Àâ¾ÆÁØ´Ù. ¶ÇÇÑ À§Á¬ÀÇ Å©±âº¯°æ°ú °°Àº À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§µµ ÀÚ½Ä ÀÚ½ÅÀÇ À§Á¬Å©±â¿¡ ¸Âµµ·Ï À§Á¬ÀÇ Å©±â¸¦ ¾Ë¾Æ¼ º¯°æ½ÃÄÑÁØ´Ù. QLCDNumber *lcd = new QLCDNumber(2, this, "lcd");QLCDNumber´Â LCD¿Í °°Àº ¸ð¾çÀÇ ¼ýÀÚÇ¥½Ã¸¦ Áö¿øÇÏ´Â À§Á¬ÀÌ´Ù. lcd´Â 2°³ÀÇ ¼ýÀÚÆÇÀ» °¡Áö°í »ý¼ºµÇµµ·Ï ¸¸µé¾ú´Ù. À̸§Àº lcd·Î Çß´Ù. ÀÌ À̸§Àº ³ªÁß¿¡ À§Á¬À» °¡¸®Å°±â À§ÇÑ ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. QSlider *slider = new QSlider(Horizontal, this, "slider"); slider->setRange(0,99); slider->setValue(0);QSlider´Â ½½¶óÀÌ´õ¹Ù¸¦ ±¸ÇöÇϱâ À§ÇØ »ç¿ëµÇ´Â Ŭ·¡½º´Ù. ÀÌ À§Á¬Àº ½½¶óÀÌ´õ ¹öưÀ» µå·¡±×ÇÏ¸é ¼³Á¤µÈ ¹üÀ§(ÃÖ´ë,ÃÖ¼Ò) ³»¿¡¼ Á¤¼ö°ªÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ¿©±â¿¡¼´Â ¼öÆò¹æÇâÀ¸·Î 0¿¡¼ 99±îÁöÀÇ ¹üÀ§¸¦ °¡Áö¸ç Ãʱ⠰ªÀº 0ÀÎ ½½¶óÀÌ´õ À§Á¬À» »ý¼ºÇß´Ù. ¹üÀ§´Â QSlider::setRange()¸¦, ÃʱâÈ´Â QSlider::setRange()¸¦ ÀÌ¿ëÇß´Ù. ÀÌ À§Á¬ÀÇ À̸§Àº slider·Î Çß´Ù. connect( slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) );¿ì¸®°¡ ¸¸µé°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥Àº ½½¶óÀÌ´õ¹ÙÀÇ ¹öưÀ» µå·¡±×ÇØ¼ °ªÀÌ º¯°æµÇ¸é LCD¿¡ Ãâ·Â½ÃŰ´Â ÀÏÀ» ÇÑ´Ù. ±×·¸´Ù¸é ½½¶óÀÌ´õÀÇ º¯°æ°ªÀÌ LCD¿¡ Àü´ÞµÇ¾î¾ß ÇҰǵ¥, ½Ã±×³Î/½½·Ï À» ÀÌ¿ëÇØ¼ ÀÌ·ê ±¸ÇöÇß´Ù. slider¿¡¼ °ªÀÇ º¯°æ(valueChange)°¡ ¹ß»ýÇϸé, º¯°æµÈ Á¤º¸¸¦ lcdÀ§Á¬ÀÇ display¿¡ Àü´ÞÇ϶ó´Â ¶æÀÌ´Ù.
ÀÌ»óÀÇ ³»¿ëÀ» º¸¸é ½½·ÔÀº ´ë·« C++¸â¹ö ÇÔ¼ö¸¦ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Â ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϰí ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. 5.2 ÀÛµ¿ Å×½ºÆ®
½½¶óÀÌ´õ¹Ù¸¦ ¿òÁ÷ÀÌ¸é ±× °©¿¡ ¸Âµµ·Ï LCD ¹øÈ£°¡ Ãâ·ÂµÇ´Â°É È®ÀÎ ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í À§Á¬(À©µµ¿ì)ÀÇ Å©±â¸¦ º¯°æÇÏ¸é °Å±â¿¡ ¸ÂÃß¾î¼ LCD¿Í ½½¶óÀÌ´õ À§Á¬ÀÇ Å©±âµµ º¯°æµÊÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. 5.3 ¿¬½À
6 ¸¹Àº ºí·°ÀÇ Á¦ÀÛ°ú ¹è¿
À̹ø ¿¹Á¦´Â µÎ°³ÀÇ À§Á¬À» ÄÄÆ÷³ÍÆ®È ½ÃŰ´Â ¹æ¹ý°ú, ¸¹Àº ¼öÀÇ À§Á¬À» ¾î¶»°Ô ´Ù·ê¼ö ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. À̸¦ À§Çؼ ¿ì¸®´Â ÀÚ½Ä À§Á¬À¸·Î »ç¿ëÀÚ Á¤ÀÇ À§Á¬À» ÀÌ¿ëÇÒ °ÍÀÌ´Ù.
#include <qapplication.h>
#include <qpushbutton.h>
#include <qslider.h>
#include <qlcdnumber.h>
#include <qfont.h>
#include <qvbox.h>
#include <qgrid.h>
class LCDRange : public QVBox
{
public:
LCDRange(QWidget *parent=0, const char *name=0);
};
LCDRange::LCDRange(QWidget *parent, const char *name)
: QVBox(parent, name)
{
QLCDNumber *lcd = new QLCDNumber(2, this, "lcd");
QSlider *slider = new QSlider(Horizontal, this, "slider");
slider->setRange(0, 99);
slider->setValue(0);
connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
}
class MyWidget:public QVBox
{
public :
MyWidget(QWidget *parent = 0, const char *name=0);
};
MyWidget::MyWidget(QWidget *parent, const char *name)
:QVBox(parent, name)
{
QPushButton *quit = new QPushButton("Quit", this, "quit");
quit->setFont(QFont("Times", 18, QFont::Bold));
connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
QGrid *grid = new QGrid(4, this);
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
new LCDRange(grid);
}
}
int main(int argc, char **argv)
{
QApplication a(argc, argv);
MyWidget w;
a.setMainWidget(&w);
w.show();
return a.exec();
}
6.1 ÁÙ´ÜÀ§ ¼³¸íclass MyWidget:public QVBox
{
public :
MyWidget(QWidget *parent = 0, const char *name=0);
};
Cache Error |
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|