· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
QT Programming Controls

2. Buttons,Containers,Views,Inputs :

»ý¼ºÇÑ À©µµ¿ì¿¡ ¿©·¯ ÄÁÆ®·ÑµéÀ» Ãß°¡Çغ¸°Ú½À´Ï´Ù.


buttons °£´ÜÇÑ ¹öưÀ» Ãß°¡Çϵµ·Ï ÇϰڽÀ´Ï´Ù. ¿ÞÂÊ ToolBoxÅÇ¿¡¼­ À©µµ¿ì FormÀ¸·Î PushButtonÄÁÆ®·ÑÀ» ²ø¾î¿Í À§Ä¡½Ãŵ´Ï´Ù.

s21.png
[PNG image (164.79 KB)]

¹öưÀÌ »ý¼ºµÇ¾ú½À´Ï´Ù. Name ¼Ó¼ºÀ» º¯°æÇÏ¿© Àû´çÈ÷ ÄÁÆ®·ÑÀÇ °´Ã¼ À̸§À» º¯°æÇϰí, CaptionÀ» º¯°æÇÏ¿© ¹öư¿¡ ³ªÅ¸³ª³­ ÅØ½ºÆ®¸¦ º¯°æÇÕ´Ï´Ù. ÀÌÁ¦´Â ¹öưÀÌ ´­·¯Á³À» °æ¿ì ¸Þ¼¼Áö¹Ú½º¸¦ Ãâ·ÂÇϵµ·Ï ¼öÁ¤ÇϰڽÀ´Ï´Ù. Ãß°¡ÇÑ ¹öư¿¡ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ª¿Â ¸Þ´º¿¡¼­ ConnectionÀ» ¼±ÅÃÇϸé Signal-SlotÀ» ¼³Á¤ÇÒ¼ö Àִ âÀÌ ¶å´Ï´Ù.( F3À» ´©¸¥ ÈÄ ¹öưÀ» ¼±ÅÃÇØµµ µË´Ï´Ù. )
s22.png
[PNG image (183.54 KB)]
F3۸¦ ´©¸¥ »óÅ¿¡¼­ ¹öưÀ» Ŭ¸¯ÇÏ¿´À¸¸é Sender ¿Í Receiver°¡ ¹öưÀ¸·Î ¼³Á¤µË´Ï´Ù. SignalÀ» º¸³»´Â °´Ã¼´Â ¹öưÀ¸·Î ¼³Á¤Çϰí À̺¥Æ® Çڵ鸵À» ÇÒ °´Ã¼´Â À©µµ¿ì âÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. ¹öưÀÇ À̸§À» pushButton_hello ·Î À©µµ¿ìÀÇ À̸§À» Form_MainÀ̶ó¸é Sender: pushButton_hello Signal: clicked() Receiver: Form_Main À¸·Î ¼³Á¤ÇÕ´Ï´Ù. ÀÌ·¸°Ô ¼³Á¤Çß´Ù¸é ¿À¸¥ÂÊ¿¡ Edit Slots...¶õ À̸§ÀÇ ¹öưÀÌ »ý±é´Ï´Ù. ÇØ´ç ¹öưÀ» Ŭ¸¯ÇÏ¿© ¹öưÀÌ Å¬¸¯µÇ¾úÀ» ¶§ È£ÃâµÉ ÀûÀýÇÑ À̺¥Æ® Çڵ鷯¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
s23.png
[PNG image (192.22 KB)]

new functionÀ» ´­·¯ »õ slotÀ» »ý¼ºÇϰí ÇÔ¼ö À̸§À» Àû´çÈ÷ ±³Ã¼ÇÕ´Ï´Ù. ÇÔ¼öÀÇ ÀÎÀÚ¸¦ ¼öÁ¤Çϸé ÇØ´ç À̺¥Æ®¿¡ ´ëÇÑ ½½·ÔÀ¸·Î »ç¿ëÇÏÁö ¸øÇϹǷΠÇÔ¼ö¼±¾ðÀº ¿øº»À» À¯ÁöÇϵµ·Ï ÇÕ´Ï´Ù. È®ÀÎÀ» ´©¸£°í ´Ù½Ã ÀÌÀüÀÇ Ã¢À¸·Î µ¹¾Æ¾Æ Slot¿¡ ÀÌÀü¿¡ »ý¼ºÇÑ ½½·Ô ÇÔ¼ö¸¦ °í¸£°í È®ÀÎÀ» ´©¸¨´Ï´Ù. ÀÌÁ¦ Project Overview âÀ¸·Î ³î¾Æ¿Í À©µµ¿ì âÀÇ *.ui.h ÆÄÀÏÀ» ¼±ÅÃÇÕ´Ï´Ù. ÄÚµå â¿¡ ½½·Ô ÇÔ¼ö°¡ »ý¼ºµÇ¾î ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼öÀÇ ³»ºÎ¿¡ ó¸®ÇÒ ±â´ÉµéÀ» ±â¼úÇÕ´Ï´Ù.
s25.png
[PNG image (177.19 KB)]
¸Þ¼¼Áö¹Ú½º¸¦ ¶ç¿ì±â À§Çؼ­´Â ¸ÕÀú ¸Þ¼¼Áö¹Ú½º°¡ ¼±¾ðµÇ¾î ÀÖ´Â Çì´õÆÄÀÏÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. ( 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¿¡ ¿©·¯ ¶óµð¿À ¹öưµéÀ» »ðÀÔÇÏ¸é µË´Ï´Ù.

s26.png
[PNG image (195.48 KB)]



±×¸²°ú °°ÀÌ 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 ;	
}


s27.png
[PNG image (154.65 KB)]


ÇϳªÀÇ QButtonGroup¿¡ ¼ÓÇÑ QRadioButtonÁß Çϳª¸¸ ¼±ÅõǴ °ÍÀ» È®ÀÎÇÕ´Ï´Ù.



tabWidget


tabWidgetÀº ÀÏÁ¾ÀÇ ¿©·¯ À©µµ¿ìµéÀÌ ¹®¼­ ÆÄÀÏó·³ ¸ð¿© ÀÖ´Â ÄÁÆ®·ÑÀÔ´Ï´Ù. tabWidgetÀº ¿©·¯ ÄÁÆ®·ÑµéÀ» ºÐ·ùÇÒ ¶§ È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Qt DesignerÀÇ Project Overview µéÀÌ tabWidgetÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. tabWidgetÀ» »ý¼ºÇÏ°í µ¿ÀûÀ¸·Î À©µµ¿ì¿¡ ÄÁÆ®·ÑÀ» Ãß°¡Çϵµ·Ï ÇϰڽÀ´Ï´Ù.

¸ÕÀú tabWidget°ú tabWidgetÀÇ À©µµ¿ìµé¿¡ ¹öưÀ» Ãß°¡Çϵµ·Ï ÇϰڽÀ´Ï´Ù. toolbox¿¡¼­ ²ø¾î¿Í¼­ Ãß°¡ÇÏ¿© ¸¸µé ¼ö ÀÖ½À´Ï´Ù.

s28.png
[PNG image (182.57 KB)]



´ÙÀ½°ú °°ÀÌ Signal°ú SlotÀ» ¼³Á¤ÇÕ´Ï´Ù.

s29.png
[PNG image (88.41 KB)]


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ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù.

s210.png
[PNG image (217.16 KB)]




listView


listView ÄÁÆ®·ÑÀº list/tree view¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ Çà°ú ¿­À» Æ®¸® ±¸Á¶·Î Ç¥ÇöÇÕ´Ï´Ù. Æ®¸®ÀÇ °¢°¢ÀÇ ¾ÆÀÌÅÛµéÀº ÀڽŰú ¿¬°üµÈ ´Ù¸¥ ¾ÆÀÌÅÛµé°ú ºÎ¸ð/ÀÚ½Ä/ÇüÁ¦ °ü°è¸¦ ÀÌ·ì´Ï´Ù.

s211.png
[PNG image (176.11 KB)]



listView´Â QListView Ŭ·¡½ºÀÇ °´Ã¼À̸ç, ³»ºÎÀÇ ¾ÆÀÌÅÛµéÀº QListViewItemŬ·¡½ºÀÇ °´Ã¼ÀÔ´Ï´Ù. ToolBox¿¡¼­ listViewÄÁÆ®·ÑÀ» ²ø¾î¿Í ¼³Ä¡Çϰųª Äڵ忡¼­ µ¿ÀûÀ¸·Î ÄÁÆ®·ÑÀ» ¼³Á¤ÇÑ ÈÄ Àû´çÈ÷ columnµéÀ» ¼³Á¤ÇÏ°í ¾ÆÀÌÅÛÀ» Ãß°¡/»èÁ¦ÇÏ´Â Äڵ带 ÀÛ¼ºÇÏ¸é µË´Ï´Ù.

°¢°¢ÀÇ ¾ÆÀÌÅÛÀ» Ŭ¸¯Çϸé listView ÄÁÆ®·Ñ¿¡¼­ doubleClicked() À̺¥Æ®°¡ ¹ß»ýÇÕ´Ï´Ù. ÇÊ¿äÇÏ´Ù¸é Signal/Slot¿¡¼­ ó¸®ÇÏ¸é µË´Ï´Ù.

½ÃÀÛ½Ã, listViewÄÁÆ®·ÑÀÇ ¾ÆÀÌÅÛ°ú columnÀ» ÃʱâÈ­ÇÏ°í ¹öưÀ» Ŭ¸¯ÇÏ¸é ¾ÆÀÌÅÛÀ» Ãß°¡Çϰųª ¼±ÅÃµÈ ¾ÆÀÌÅÛÀ» »èÁ¦ÇÏ´Â ¿¹Á¦¸¦ ÀÛ¼ºÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.


s212.png
[PNG image (156.71 KB)]
ÄÁÆ®·Ñ ¹èÄ¡



s213.png
[PNG image (94.32 KB)]
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
s261.png
[PNG image (186.97 KB)]

ÅØ½ºÆ®,³¯Â¥,½Ã°£µîÀÇ ÀÔ·ÂÀ» ¹Þ´Â ÄÁÆ®·ÑµéÀÔ´Ï´Ù.

QLineEdit : ÇÑÁÙ ÅØ½ºÆ®¸¦ ¹Þ°Å³ª Ãâ·ÂÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. QTimeEdit : ½Ã°£ Ç¥ÇöÀ» ¹Þ°Å³ª Ãâ·ÂÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. QDateEdit : ³¯Â¥ Ç¥ÇöÀ» ¹Þ°Å³ª Ãâ·ÂÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. QComboBox : µå·Ó´Ù¿î ¸®½ºÆ®¿Í ÆîÄ¡±â ¹öưÀ¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç, ¿©·¯ Ç׸ñÁß Çϳª¸¦ °í¸¦ ¶§ »ç¿ëÇÕ´Ï´Ù.

QLineEdit , QTextEdit ÄÁÆ®·ÑÀº ÀÔ·ÂµÈ ÅØ½ºÆ®¸¦ text()¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© QString Çü½ÄÀ¸·Î ¾ò°Å³ª ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç QTimeEditÀº time()¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© QTime°´Ã¼·Î,QDateEditÀº date()°´Ã¼¸¦ ÀÌ¿ëÇÏ¿© QDate°´Ã¼·Î ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

¾Æ·¡ÀÇ °¢°¢ÀÇ ÄÁÆ®·Ñ¿¡ ´ëÇÑ °£´ÜÇÑ »ç¿ë¿¹¿Í Qt Assistance¸¦ º¸°í Âü°íÇϽñ⠹ٶø´Ï´Ù.

ÄÁÆ®·Ñ ¹èÄ¡
s272.png
[PNG image (240.85 KB)]


s274.png
[PNG image (119.51 KB)]
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 À¸·Î ¾Ë·ÁÁÖ½Ã¸é ºü¸£°Ô °íÄ¡µµ·Ï ÇϰڽÀ´Ï´Ù. ÁÁÀº ÇÏ·ç µÇ¼¼¿ä

ID
Password
Join
Beauty and harmony are as necessary to you as the very breath of life.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-10-28 21:12:10
Processing time 0.0111 sec