· 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
Standing on head makes smile of frown, but rest of face also upside down.


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