· 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 À¸·Î ¾Ë·ÁÁÖ½Ã¸é ºü¸£°Ô °íÄ¡µµ·Ï ÇÏ°Ú½À´Ï´Ù. ÁÁÀº ÇÏ·ç µÇ¼¼¿ä



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.0112 sec