2. Buttons,Containers,Views,Inputs : »ý¼ºÇÑ À©µµ¿ì¿¡ ¿©·¯ ÄÁÆ®·ÑµéÀ» Ãß°¡Çغ¸°Ú½À´Ï´Ù. [buttons] °£´ÜÇÑ ¹öÆ°À» Ãß°¡Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. ¿ÞÂÊ ToolBoxÅÇ¿¡¼­ À©µµ¿ì FormÀ¸·Î PushButtonÄÁÆ®·ÑÀ» ²ø¾î¿Í À§Ä¡½Ãŵ´Ï´Ù. attachment:s21.png ¹öÆ°ÀÌ »ý¼ºµÇ¾ú½À´Ï´Ù. Name ¼Ó¼ºÀ» º¯°æÇÏ¿© Àû´çÈ÷ ÄÁÆ®·ÑÀÇ °´Ã¼ À̸§À» º¯°æÇÏ°í, CaptionÀ» º¯°æÇÏ¿© ¹öÆ°¿¡ ³ªÅ¸³ª³­ ÅؽºÆ®¸¦ º¯°æÇÕ´Ï´Ù. ÀÌÁ¦´Â ¹öÆ°ÀÌ ´­·¯Á³À» °æ¿ì ¸Þ¼¼Áö¹Ú½º¸¦ Ãâ·ÂÇϵµ·Ï ¼öÁ¤ÇÏ°Ú½À´Ï´Ù. Ãß°¡ÇÑ ¹öÆ°¿¡ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» Ŭ¸¯ÇÏ¿© ³ª¿Â ¸Þ´º¿¡¼­ ConnectionÀ» ¼±ÅÃÇϸé Signal-SlotÀ» ¼³Á¤ÇÒ¼ö Àִ âÀÌ ¶å´Ï´Ù.( F3À» ´©¸¥ ÈÄ ¹öÆ°À» ¼±ÅÃÇصµ µË´Ï´Ù. ) attachment:s22.png F3Å°¸¦ ´©¸¥ »óÅ¿¡¼­ ¹öÆ°À» Ŭ¸¯ÇÏ¿´À¸¸é Sender ¿Í Receiver°¡ ¹öÆ°À¸·Î ¼³Á¤µË´Ï´Ù. SignalÀ» º¸³»´Â °´Ã¼´Â ¹öÆ°À¸·Î ¼³Á¤ÇÏ°í À̺¥Æ® Çڵ鸵À» ÇÒ °´Ã¼´Â À©µµ¿ì âÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. ¹öÆ°ÀÇ À̸§À» pushButton_hello ·Î À©µµ¿ìÀÇ À̸§À» Form_MainÀ̶ó¸é Sender: pushButton_hello Signal: clicked() Receiver: Form_Main À¸·Î ¼³Á¤ÇÕ´Ï´Ù. ÀÌ·¸°Ô ¼³Á¤Çß´Ù¸é ¿À¸¥ÂÊ¿¡ Edit Slots...¶õ À̸§ÀÇ ¹öÆ°ÀÌ »ý±é´Ï´Ù. ÇØ´ç ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¹öÆ°ÀÌ Å¬¸¯µÇ¾úÀ» ¶§ È£ÃâµÉ ÀûÀýÇÑ À̺¥Æ® Çڵ鷯¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. attachment:s23.png new functionÀ» ´­·¯ »õ slotÀ» »ý¼ºÇÏ°í ÇÔ¼ö À̸§À» Àû´çÈ÷ ±³Ã¼ÇÕ´Ï´Ù. ÇÔ¼öÀÇ ÀÎÀÚ¸¦ ¼öÁ¤Çϸé ÇØ´ç À̺¥Æ®¿¡ ´ëÇÑ ½½·ÔÀ¸·Î »ç¿ëÇÏÁö ¸øÇϹǷΠÇÔ¼ö¼±¾ðÀº ¿øº»À» À¯ÁöÇϵµ·Ï ÇÕ´Ï´Ù. È®ÀÎÀ» ´©¸£°í ´Ù½Ã ÀÌÀüÀÇ Ã¢À¸·Î µ¹¾Æ¾Æ Slot¿¡ ÀÌÀü¿¡ »ý¼ºÇÑ ½½·Ô ÇÔ¼ö¸¦ °í¸£°í È®ÀÎÀ» ´©¸¨´Ï´Ù. ÀÌÁ¦ Project Overview âÀ¸·Î ³î¾Æ¿Í À©µµ¿ì âÀÇ *.ui.h ÆÄÀÏÀ» ¼±ÅÃÇÕ´Ï´Ù. ÄÚµå â¿¡ ½½·Ô ÇÔ¼ö°¡ »ý¼ºµÇ¾î ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼öÀÇ ³»ºÎ¿¡ ó¸®ÇÒ ±â´ÉµéÀ» ±â¼úÇÕ´Ï´Ù. attachment:s25.png ¸Þ¼¼Áö¹Ú½º¸¦ ¶ç¿ì±â À§Çؼ­´Â ¸ÕÀú ¸Þ¼¼Áö¹Ú½º°¡ ¼±¾ðµÇ¾î ÀÖ´Â Çì´õÆÄÀÏÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. ( qmessagebox.h ) ¸Þ¼¼Áö¹Ú½º¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ½ºÆ®¸µÀ» ±×´ë·Î Ãâ·ÂÇÒ°æ¿ì ÀÎÄÚµù ¹®Á¦°¡ ¹ß»ýÇϹǷΠQTextCodec°´Ã¼¸¦ »ý¼ºÇؼ­ utf8·Î ÀÎÄÚµùÇؼ­ Ãâ·ÂÇÕ´Ï´Ù. {{{ #include < qmessagebox.h > #include < qtextcodec.h > void Form_Main::pushButton_hello_clicked() { //local variables : QTextCodec* pQTC = NULL; QString qstr= "¾È³çÇϼ¼¿ä"; pQTC = QTextCodec::codecForName("utf8"); //ÀÎÄÚµùÇÒ QTextCodec°´Ã¼¸¦ »ý¼ºÇÑ´Ù if( pQTC == NULL ) { QMessageBox::information( this , this->caption() , "Error!\n" ); return; } qstr = pQTC->toUnicode(qstr); //utf8·Î ÀÎÄÚµùÇÑ´Ù. QMessageBox::information( this , this->caption() , qstr); //¸Þ¼¼Áö¹Ú½º¸¦ Ãâ·ÂÇÑ´Ù return ; } }}} ¸Þ¼¼Áö ¹Ú½º Ãâ·ÂÀ» À§Çؼ­´Â Qt Assistance¿¡¼­ QMessageBox Ç׸ñÀ» È®ÀÎÇϽðí ÀÎÄÚµùÀ» À§Çؼ­´Â QTextCodec Ŭ·¡½º¸¦ È®ÀÎÇϽñ⠹ٶø´Ï´Ù. [radiobuttons] ¶óµð¿À ¹öÆ°Àº ¿©·¯ Ç׸ñÁß¿¡¼­ ÇÑ °¡Áö¸¦ ¼±ÅÃÇØ¾ß ÇÏ´Â »óȲÀ» ¸¸µé ¶§ È¿°úÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ ¶óµð¿À ¹öÆ° Áß¿¡¼­ ÇÑ °¡Áö¸¸À» ¼±ÅÃÇϵµ·Ï Çϱâ À§Çؼ­´Â QButtonGroup¿¡ ¿©·¯ ¶óµð¿À ¹öÆ°µéÀ» »ðÀÔÇÏ¸é µË´Ï´Ù. attachment:s26.png ±×¸²°ú °°ÀÌ QButtonGroupÀ» Ãß°¡ÇÏ°í QRadioButtonµµ Ãß°¡ÇÑ ÈÄ QRadioButtonÀ» QButtonBroupÀ¸·Î ²ø¾î Æ÷ÇÔ½Ãŵ´Ï´Ù. ¶óµð¿À¹öÆ°ÀÌ Ã¼Å©µÇ¾ú´ÂÁö È®ÀÎÇϱâ À§Çؼ­ QRadioButtonÀÇ isChecked() ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. {{{ #include < qbuttongroup.h > #include < qmessagebox.h > #include < qtextcodec.h > #include < qradiobutton.h > void Form_Main::pushButton_hello_clicked() { //local variables : QString qstr_Selected = "Nothing Selected"; if( this->radioButton_A->isChecked()) { qstr_Selected = radioButton_A->text(); } if( this->radioButton_B->isChecked()) { qstr_Selected = radioButton_B->text(); } if( this->radioButton_C->isChecked()) { qstr_Selected = radioButton_C->text(); } qstr_Selected += " "; QMessageBox::information( this , this->caption() , qstr_Selected ); return ; } }}} attachment:s27.png ÇϳªÀÇ QButtonGroup¿¡ ¼ÓÇÑ QRadioButtonÁß Çϳª¸¸ ¼±ÅõǴ °ÍÀ» È®ÀÎÇÕ´Ï´Ù. [tabWidget] tabWidgetÀº ÀÏÁ¾ÀÇ ¿©·¯ À©µµ¿ìµéÀÌ ¹®¼­ ÆÄÀÏó·³ ¸ð¿© ÀÖ´Â ÄÁÆ®·ÑÀÔ´Ï´Ù. tabWidgetÀº ¿©·¯ ÄÁÆ®·ÑµéÀ» ºÐ·ùÇÒ ¶§ È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Qt DesignerÀÇ Project Overview µéÀÌ tabWidgetÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. tabWidgetÀ» »ý¼ºÇÏ°í µ¿ÀûÀ¸·Î À©µµ¿ì¿¡ ÄÁÆ®·ÑÀ» Ãß°¡Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. ¸ÕÀú tabWidget°ú tabWidgetÀÇ À©µµ¿ìµé¿¡ ¹öÆ°À» Ãß°¡Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. toolbox¿¡¼­ ²ø¾î¿Í¼­ Ãß°¡ÇÏ¿© ¸¸µé ¼ö ÀÖ½À´Ï´Ù. attachment:s28.png ´ÙÀ½°ú °°ÀÌ Signal°ú SlotÀ» ¼³Á¤ÇÕ´Ï´Ù. attachment:s29.png slotÇÔ¼öµéÀ» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù. µ¿ÀûÀ¸·Î ÅÇÀ» Ãß°¡/»èÁ¦Çϸç ÅÇ¿¡ ÄÁÆ®·ÑÀ» Ãß°¡ÇÏ°í Signal/SlotÀ» ¼³Á¤ÇÕ´Ï´Ù. {{{ #include < qbuttongroup.h > #include < qmessagebox.h > #include < qtextcodec.h > #include < qradiobutton.h > #include < qwidget.h > void Form_Main::pushButton_addtab_cilcked() { //-------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------- int index; QString qstr = ""; QTextCodec* pQTC = NULL; QWidget* pCurrentTabWidget = NULL; QWidget* pChildWidget = NULL; QPushButton* pQPushButton = NULL; //-------------------------------------------------------------------------------------------------- // //»õ À©µµ¿ì¸¦ »ý¼ºÇÏ°í ¹öÆ° ÄÁÆ®·ÑÀ» À©µµ¿ì¿¡ Ãß°¡ÇÑ ÈÄ À©µµ¿ì¸¦ tabWidget¿¡ Ãß°¡ÇÑ´Ù. // //ÇÑ±Û Ãâ·ÂÀ» À§ÇØ ÀÎÄÚµù °´Ã¼¸¦ »ý¼ºÇÑ´Ù. pQTC = QTextCodec::codecForName("utf8"); //ÇöÀç ¼±ÅÃµÈ ÆäÀÌÁö¸¦ ¾ò´Â´Ù. pCurrentTabWidget = tabWidget_fruits->currentPage(); //ÅÇ °´Ã¼¿¡ Ãß°¡ÇÒ ÆäÀÌÁö¸¦ »ý¼ºÇÑ´Ù. pChildWidget = new QWidget(this->tabWidget_fruits); //ÆäÀÌÁö¿¡ ¹öÆ° ÄÁÆ®·ÑÀ» »ý¼ºÇؼ­ Ãß°¡ÇÑ´Ù. pQPushButton = new QPushButton(pChildWidget , ""); //¹öÆ° ÄÁÆ®·Ñ »ý¼º index = tabWidget_fruits->indexOf( pCurrentTabWidget ); //ÇöÀç ¼±ÅÃµÈ ÅÇÀÇ À妽º¸¦ ¾ò´Â´Ù. qstr = tabWidget_fruits->label( index ); //¼±ÅÃµÈ ÅÇÀÇ Á¦¸ñÀ» ¾ò´Â´Ù. pQPushButton->setText( qstr ); //¹öÆ°ÀÇ ÅؽºÆ®¸¦ ±× Á¦¸ñÀ¸·Î ÇÑ´Ù. pQPushButton->setGeometry(10 , 10 , 113 , 26); //¹öÆ°ÀÇ À§Ä¡¿Í Å©±â¸¦ ¼³Á¤ÇÑ´Ù. //»õ·Î »ý¼ºÇÑ ¹öÆ°¿¡ ´ëÇØ clicked()½ÃÀÇ Çڵ鷯¸¦ ¼³Á¤ÇÑ´Ù. connect( pQPushButton , SIGNAL( clicked() ), this, SLOT( pushButton_insidetab_clicked() ) ); //tabWidget¿¡ »õ·Î »ý¼ºÇÑ ÆäÀÌÁö¸¦ Ãß°¡ this->tabWidget_fruits->addTab( pChildWidget , qstr ); } void Form_Main::pushButton_deletetab_clicked() { //-------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------- QWidget* pQWidget_Current = NULL; //-------------------------------------------------------------------------------------------------- // //ÇöÀç ¼±ÅÃµÈ ÅÇ ÆäÀÌÁö¸¦ ¾ò¾î¼­ tabWidget¿¡¼­ »èÁ¦ÇÑ´Ù. // pQWidget_Current = tabWidget_fruits->currentPage(); //ÇöÀç ÆäÀÌÁö¸¦ ¾ò´Â´Ù. tabWidget_fruits->removePage(pQWidget_Current); //ÆäÀÌÁö¸¦ tabWidget¿¡¼­ »èÁ¦ÇÑ´Ù. delete pQWidget_Current; //ÆäÀÌÁö¸¦ Áö¿î´Ù. pQWidget_Current = NULL; return; } void Form_Main::pushButton_insidetab_clicked() { //-------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------- QWidget* pQWidget_Current = NULL; QString qstr=""; QTextCodec* pQTC = NULL; int index; //-------------------------------------------------------------------------------------------------- // // tabWidget¿¡ Ãß°¡µÈ ÆäÀÌÁöÀÇ ¹öÆ°ÀÇ Çڵ鷯. // ÇöÀç ÆäÀÌÁöÀÇ Á¦¸ñ°ú ÅÇ À妽º¸¦ ¸Þ¼¼Áö¹Ú½º·Î º¸¿©ÁØ´Ù. // //ÇÑ±Û Ãâ·ÂÀ» À§ÇØ ÀÎÄÚµù °´Ã¼¸¦ »ý¼ºÇÑ´Ù. pQTC = QTextCodec::codecForName("utf8"); pQWidget_Current = tabWidget_fruits->currentPage(); //ÇöÀç ÆäÀÌÁö¸¦ ¾ò´Â´Ù. if( pQWidget_Current ) { //ÇöÀç ¼±ÅÃµÈ ÅÇÀÇ À妽º¸¦ ¾ò´Â´Ù. index = tabWidget_fruits->indexOf( pQWidget_Current ); //sprintfÇÔ¼ö¸¦ c Ç¥ÁØ ½ºÆ®¸µ ÇÔ¼ö¿Í »ç¿ë¹ýÀÌ µ¿ÀÏÇÏ´Ù. //È£ÃâÇÑ QString °´Ã¼¿¡ ¹®ÀÚ¿­ÀÌ ÀúÀåµÈ´Ù. qstr.sprintf("ÅÇ À妽º : %d\nÅÇ Á¦¸ñ : " , index ); qstr = pQTC->toUnicode( qstr ); //»ý¼ºÇÑ ½ºÆ®¸µÀ» À¯´ÏÄÚµå·Î º¯È¯ qstr = qstr + tabWidget_fruits->label( index ) ; QMessageBox::information( this , this->caption() , qstr ); } else { QMessageBox::information(this , this->caption() , "nothing selected" ); } } }}} ÅÇ À妽º´Â 0ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. attachment:s210.png [listView] listView ÄÁÆ®·ÑÀº list/tree view¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ Çà°ú ¿­À» Æ®¸® ±¸Á¶·Î Ç¥ÇöÇÕ´Ï´Ù. Æ®¸®ÀÇ °¢°¢ÀÇ ¾ÆÀÌÅÛµéÀº ÀڽŰú ¿¬°üµÈ ´Ù¸¥ ¾ÆÀÌÅÛµé°ú ºÎ¸ð/ÀÚ½Ä/ÇüÁ¦ °ü°è¸¦ ÀÌ·ì´Ï´Ù. attachment:s211.png listView´Â QListView Ŭ·¡½ºÀÇ °´Ã¼À̸ç, ³»ºÎÀÇ ¾ÆÀÌÅÛµéÀº QListViewItemŬ·¡½ºÀÇ °´Ã¼ÀÔ´Ï´Ù. ToolBox¿¡¼­ listViewÄÁÆ®·ÑÀ» ²ø¾î¿Í ¼³Ä¡Çϰųª Äڵ忡¼­ µ¿ÀûÀ¸·Î ÄÁÆ®·ÑÀ» ¼³Á¤ÇÑ ÈÄ Àû´çÈ÷ columnµéÀ» ¼³Á¤ÇÏ°í ¾ÆÀÌÅÛÀ» Ãß°¡/»èÁ¦ÇÏ´Â Äڵ带 ÀÛ¼ºÇÏ¸é µË´Ï´Ù. °¢°¢ÀÇ ¾ÆÀÌÅÛÀ» Ŭ¸¯Çϸé listView ÄÁÆ®·Ñ¿¡¼­ doubleClicked() À̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ÇÊ¿äÇÏ´Ù¸é Signal/Slot¿¡¼­ ó¸®ÇÏ¸é µË´Ï´Ù. ½ÃÀÛ½Ã, listViewÄÁÆ®·ÑÀÇ ¾ÆÀÌÅÛ°ú columnÀ» ÃʱâÈ­ÇÏ°í ¹öÆ°À» Ŭ¸¯ÇÏ¸é ¾ÆÀÌÅÛÀ» Ãß°¡Çϰųª ¼±ÅÃµÈ ¾ÆÀÌÅÛÀ» »èÁ¦ÇÏ´Â ¿¹Á¦¸¦ ÀÛ¼ºÇØ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. attachment:s212.png [ÄÁÆ®·Ñ ¹èÄ¡] attachment:s213.png [Signal/Slot¼³Á¤] {{{ #include < qlistview.h > #include < qtextcodec.h > #include < qdatetime.h > #include < qpixmap.h > #include < qmessagebox.h > //-------------------------------------------------------------------------------------------------------------- // constant definitions : //-------------------------------------------------------------------------------------------------------------- static const char* folder_closed_xpm[]={ "16 16 9 1", "g c #808080", "b c #c0c000", "e c #c0c0c0", "# c #000000", "c c #ffff00", ". c None", "a c #585858", "f c #a0a0a4", "d c #ffffff", "..###...........", ".#abc##.........", ".#daabc#####....", ".#ddeaabbccc#...", ".#dedeeabbbba...", ".#edeeeeaaaab#..", ".#deeeeeeefe#ba.", ".#eeeeeeefef#ba.", ".#eeeeeefeff#ba.", ".#eeeeefefff#ba.", ".##geefeffff#ba.", "...##gefffff#ba.", ".....##fffff#ba.", ".......##fff#b##", ".........##f#b##", "...........####."}; static const char* folder_open_xpm[]={ "16 16 11 1", "# c #000000", "g c #c0c0c0", "e c #303030", "a c #ffa858", "b c #808080", "d c #a0a0a4", "f c #585858", "c c #ffdca8", "h c #dcdcdc", "i c #ffffff", ". c None", "....###.........", "....#ab##.......", "....#acab####...", "###.#acccccca#..", "#ddefaaaccccca#.", "#bdddbaaaacccab#", ".eddddbbaaaacab#", ".#bddggdbbaaaab#", "..edgdggggbbaab#", "..#bgggghghdaab#", "...ebhggghicfab#", "....#edhhiiidab#", "......#egiiicfb#", "........#egiibb#", "..........#egib#", "............#ee#"}; static const char * folder_locked[]={ "16 16 10 1", "h c #808080", "b c #ffa858", "f c #c0c0c0", "e c #c05800", "# c #000000", "c c #ffdca8", ". c None", "a c #585858", "g c #a0a0a4", "d c #ffffff", "..#a#...........", ".#abc####.......", ".#daa#eee#......", ".#ddf#e##b#.....", ".#dfd#e#bcb##...", ".#fdccc#daaab#..", ".#dfbbbccgfg#ba.", ".#ffb#ebbfgg#ba.", ".#ffbbe#bggg#ba.", ".#fffbbebggg#ba.", ".##hf#ebbggg#ba.", "...###e#gggg#ba.", ".....#e#gggg#ba.", "......###ggg#b##", ".........##g#b##", "...........####."}; static const char * pix_file []={ "16 16 7 1", "# c #000000", "b c #ffffff", "e c #000000", "d c #404000", "c c #c0c000", "a c #ffffc0", ". c None", "................", ".........#......", "......#.#a##....", ".....#b#bbba##..", "....#b#bbbabbb#.", "...#b#bba##bb#..", "..#b#abb#bb##...", ".#a#aab#bbbab##.", "#a#aaa#bcbbbbbb#", "#ccdc#bcbbcbbb#.", ".##c#bcbbcabb#..", "...#acbacbbbe...", "..#aaaacaba#....", "...##aaaaa#.....", ".....##aa#......", ".......##......."}; //-------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------- //global definitions : //-------------------------------------------------------------------------------------------------------------------------------- QPixmap *g_pQPixmap_folderLocked = NULL; QPixmap *g_pQPixmap_folderClosed = NULL; QPixmap *g_pQPixmap_folderOpen = NULL; QPixmap *g_pQPixmap_fileNormal = NULL; //-------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------- // Form_Main::Initialize() :ÄÁÆ®·ÑµéÀ» ÃʱâÈ­. //-------------------------------------------------------------------------------------------------------------------------------- void Form_Main::Initialize() { //-------------------------------------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------------------------------------- QString qstr; QTextCodec* pQTC; //-------------------------------------------------------------------------------------------------------------------------------- // // ÀÎÄÚµùÀ» À§ÇÑ QTextCodec °´Ã¼ »ý¼º // pQTC = QTextCodec::codecForName("utf8"); // // »ç¿ëÇÒ ¾ÆÀÌÄܵéÀ» »ý¼ºÇÑ´Ù. // g_pQPixmap_folderLocked = new QPixmap( folder_locked ); g_pQPixmap_folderClosed = new QPixmap( folder_closed_xpm ); g_pQPixmap_folderOpen = new QPixmap( folder_open_xpm ); g_pQPixmap_fileNormal = new QPixmap( pix_file ); // //¸ðµç columnµéÀ» Áö¿î´Ù. // listView1->clear(); //listViewÀÇ itemÀ» ¸ðµÎ Áö¿î´Ù. //columnµéÀ» ¸ðµÎ Áö¿î´Ù. while( listView1->columns() ) { this->listView1->removeColumn(0); } // //Ä®·³µéÀ» Ãß°¡ÇÑ´Ù. // qstr = "tree"; qstr = pQTC->toUnicode( qstr ); this->listView1->addColumn( qstr ); qstr = "description"; qstr = pQTC->toUnicode( qstr ); this->listView1->addColumn( qstr ); } void Form_Main::pushButton_add_clicked() { //-------------------------------------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------------------------------------- QListViewItem *pParentItem = NULL , *pChildItem = NULL; QString qstrs[2]; QTextCodec* pQTC; //-------------------------------------------------------------------------------------------------------------------------------- // // ÀÎÄÚµùÀ» À§ÇÑ QTextCodec °´Ã¼ »ý¼º // pQTC = QTextCodec::codecForName("utf8"); // // listViewItem»ý¼ºÀ» À§ÇÑ ½ºÆ®¸µÀ» ¸¸µë // qstrs[0] = "¾ÆÀÌÅÛ"; qstrs[0] += (QTime::currentTime()).toString(); qstrs[1] = (QTime::currentTime()).toString(); qstrs[0] = pQTC->toUnicode( qstrs[0] ); qstrs[1] = pQTC->toUnicode( qstrs[1] ); pParentItem = listView1->selectedItem(); //ÇöÀç Ŭ¸¯µÈ ¾ÆÀÌÅÛÀ» ¼±Åà if( pParentItem == NULL ) { //·çÆ®ÀÇ ÀÚ½ÄÀ¸·Î »ý¼º pChildItem = new QListViewItem( listView1 , qstrs[0] , qstrs[1] ); } else { //¼±ÅÃµÈ listViewItemÀÇ ÀÚ½ÄÀ¸·Î »ý¼º pChildItem = new QListViewItem( pParentItem , qstrs[0] , qstrs[1] ); } //itemÀÇpixmap(¾ÆÀÌÄÜ)À» ¼³Á¤ pChildItem->setPixmap( 0 , *g_pQPixmap_folderLocked ); pChildItem->setPixmap( 1 , *g_pQPixmap_folderLocked ); return; } void Form_Main::listView1_clicked() { //-------------------------------------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------------------------------------- QListViewItem *pItem = NULL; QPixmap* pPixmap; QString qstrs[2]; QTextCodec* pQTC; //-------------------------------------------------------------------------------------------------------------------------------- // // ¼±ÅÃµÈ ÄÁÆ®·ÑÀÌ È®Àå(isOpen()) µÇ¾ú´ÂÁöÀÇ ¿©ºÎ¿¡ µû¶ó ¾ÆÀÌÄÜ À̹ÌÁö¸¦ ¹Ù²Û´Ù. // pItem = listView1->selectedItem(); //¼±ÅÃµÈ ¾ÆÀÌÅÛ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò´Â´Ù. if( pItem->isOpen() ) //È®ÀåµÈ »óÅÂÀÌ¸é ¿­·ÁÀÖ´Â À̹ÌÁö·Î ¼³Á¤ { pItem->setPixmap( 0 , *g_pQPixmap_folderOpen ); pItem->setPixmap( 1 , *g_pQPixmap_folderOpen ); } else //´ÝÈù »óÅÂÀÌ¸é ´ÝÇôÀÖ´Â À̹ÌÁö·Î ¼³Á¤ { pItem->setPixmap( 0 , *g_pQPixmap_folderLocked ); pItem->setPixmap( 1 , *g_pQPixmap_folderLocked ); } return; } void Form_Main::pushButton_delete_clicked() { //-------------------------------------------------------------------------------------------------------------------------------- //local variables : //-------------------------------------------------------------------------------------------------------------------------------- QListViewItem *pItem = NULL , *pParentItem = NULL ; //-------------------------------------------------------------------------------------------------------------------------------- pItem = listView1->selectedItem(); //¼±ÅÃµÈ ¾ÆÀÌÅÛ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò´Â´Ù. if( pItem != NULL ) { pParentItem = pItem->parent(); //¼±ÅÃµÈ ¾ÆÀÌÅÛÀÇ ºÎ¸ð ¾ÆÀÌÅÛ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò´Â´Ù. if(pParentItem != NULL ) { //ºÎ¸ð°¡ Á¸ÀçÇÑ´Ù¸é ºÎ¸ð¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇÏ¿© takeItem() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© »èÁ¦ÇÏ°í, pParentItem->takeItem( pItem ); delete pItem; pItem = NULL; } else { //ºÎ¸ð¿¡ ´ëÇÑ Æ÷ÀÎÅÍ°¡ ¾øÀ¸¸é °¡Àå ³ôÀº ´Ü°èÀÇ Æ÷ÀÎÅÍÀ̹ǷΠ//Á÷Á¢ listView¿¡¼­ takeItem()À» È£ÃâÇÑ´Ù. listView1->takeItem( pItem ); delete pItem; pItem = NULL; } } else { return; } } }}} QListView¿¡ ¾ÆÀÌÅÛÀ» Ãß°¡ÇÏ°í »èÁ¦ÇÏ´Â ºÎºÐÀ» È®ÀÎÇϼ¼¿ä. {{{ #include < qapplication.h > #include "form_main.h" int main( int argc, char ** argv ) { QApplication a( argc, argv ); Form_Main w; w.Initialize(); w.show(); a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) ); return a.exec(); } }}} ±âÁ¸ÀÇ Äڵ忡¼­ w.Initialize()ÇÔ¼ö¸¦ »ý¼º ÈÄ È£ÃâÇÏ¿© listViewÄÁÆ®·ÑÀ» ÃʱâÈ­ÇÏ´Â ºÎºÐ¸¸ÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. [Inputs] attachment:s261.png ÅؽºÆ®,³¯Â¥,½Ã°£µîÀÇ ÀÔ·ÂÀ» ¹Þ´Â ÄÁÆ®·ÑµéÀÔ´Ï´Ù. QLineEdit : ÇÑÁÙ ÅؽºÆ®¸¦ ¹Þ°Å³ª Ãâ·ÂÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. QTimeEdit : ½Ã°£ Ç¥ÇöÀ» ¹Þ°Å³ª Ãâ·ÂÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. QDateEdit : ³¯Â¥ Ç¥ÇöÀ» ¹Þ°Å³ª Ãâ·ÂÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. QComboBox : µå·Ó´Ù¿î ¸®½ºÆ®¿Í ÆîÄ¡±â ¹öÆ°À¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç, ¿©·¯ Ç׸ñÁß Çϳª¸¦ °í¸¦ ¶§ »ç¿ëÇÕ´Ï´Ù. QLineEdit , QTextEdit ÄÁÆ®·ÑÀº ÀÔ·ÂµÈ ÅؽºÆ®¸¦ text()¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© QString Çü½ÄÀ¸·Î ¾ò°Å³ª ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç QTimeEditÀº time()¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© QTime°´Ã¼·Î,QDateEditÀº date()°´Ã¼¸¦ ÀÌ¿ëÇÏ¿© QDate°´Ã¼·Î ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ °¢°¢ÀÇ ÄÁÆ®·Ñ¿¡ ´ëÇÑ °£´ÜÇÑ »ç¿ë¿¹¿Í Qt Assistance¸¦ º¸°í Âü°íÇϽñ⠹ٶø´Ï´Ù. ÄÁÆ®·Ñ ¹èÄ¡ attachment:s272.png attachment:s274.png Signal/Slot¼³Á¤ À§ signal/slot ¼³Á¤°ú °¢°¢ÀÇ ÄÁÆ®·Ñ¿¡¼­ °ªÀ» ¾ò´Â ºÎºÐÀ» ´ëÁ¶ÇØ°¡¸é¼­ È®ÀÎÇϼ¼¿ä {{{ #include < qmessagebox.h > QString g_qstr; void Form_Main::pushButton_lineEdit_clicked() { g_qstr = lineEdit->text(); QMessageBox::information(this , this->caption() , g_qstr ); } void Form_Main::pushButton_dateEdit_clicked() { QDate date; date = dateEdit->date(); QMessageBox::information( this , this->caption() , date.toString() ); } void Form_Main::pushButton_timeEdit_clicked() { QTime time; time = timeEdit->time(); QMessageBox::information( this , this->caption() , time.toString() ); } void Form_Main::pushButton_textEdit_clicked() { g_qstr = textEdit->text(); QMessageBox::information( this , this->caption() , g_qstr ); } void Form_Main::pushButton_comboBox_clicked() { g_qstr = this->lineEdit_scrollbar->text(); if( g_qstr.length() > 0 ) { this->comboBox->insertItem( g_qstr ); } } void Form_Main::scrollbar_sliderMoved() { lineEdit_scrollbar->setText( g_qstr.sprintf("selected scrollbar value : %d" , scrollBar->value() ) ); } }}} ÄÁÆ®·ÑµéÀÇ Á¾·ù´Â ´Ù¾çÇÏÁö¸¸, ¸ðµÎ Qt Assistance¿¡ Ŭ·¡½ºÀÇ »ó¼Ó±¸Á¶, ÇÔ¼ö, ¼Ó¼º, Á¤ÀûÇÔ¼ö, ¿¹Á¦ Äڵ尡 ÀÖ½À´Ï´Ù. À̹ø ¿¹Á¦µéÀ» Âü°íÇϸ鼭 Qt Assistance¸¦ °Ë»öÇÏ°í ÇÊ¿äÇÑ Á¤º¸¸¦ ã´Â °Í¿¡ Àͼ÷ÇØÁ³À¸¸é ÇÕ´Ï´Ù. ¹è¿ì¸é¼­ ÀÛ¼ºÇÏ´Â °ÍÀ̶ó À߸øµÈ ³»¿ëÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¿À·ù°¡ ÀÖÀ¸¸é, firsttimelove@hotmail.com À¸·Î ¾Ë·ÁÁÖ½Ã¸é ºü¸£°Ô °íÄ¡µµ·Ï ÇÏ°Ú½À´Ï´Ù. ÁÁÀº ÇÏ·ç µÇ¼¼¿ä