ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : article>kde_browser
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 ¼Ò°³
À̹ø¿¡ ¸¸µé¾î º¼ ÇÁ·Î±×·¥Àº °£´ÜÇÑ ÆÄÀÏ ºê¶ó¿ìÀú´Ù. ÇÁ·ÎÁ§Æ®´Â kdevelp¸¦ ÅëÇØ¼ °ü¸®¸¦ Çϸç, UIÀÇ Á¦ÀÛÀº designer¸¦ ÅëÇØ¼ ÀÌ·ç¾îÁöµµ·Ï ÇϰڴÙ. designer¸¦ ÀÌ¿ëÇÑ ¼ÒÄÏ ÇÁ·Î±×·¥ Á¦ÀÛÀ» ÅëÇØ¼ designer°ú kdevelop¿¡ ´ëÇÑ ÀÀ¿ë¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸¾ÒÀ¸´Ï ±×¸® ¾î·ÆÁö ¾Ê°Ô ¸¸µé ¼ö ÀÖÀ» °Í °°´Ù.
¿ì¼±Àº ·ÎÄÿ¡ ÀÖ´Â ÆÄÀϵ鸸 ºê¶ó¿ì¡ °¡´ÉÇÑ ¼öÁØÀ¸·Î ¸¸µé°í À¥¼¹ö¿¡ ¿¬°áÇØ¼ À¥ºê¶ó¿ì¡±îÁö °¡´ÉÇÑ ¼öÁØÀ¸·Î ¸¸µé¾î º¸°íÀÚ ÇÑ´Ù. 2 ÇÁ·Î±×·¥ °³¿ä
ÀÌ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°Àº UI¸¦ º¸¿©ÁØ´Ù. ¿ª½Ã ÇãÁ¢ÇÑ UIÀÌÁö¸¸ ¹¹¶óÇÏÁö ¸»¾ÆÁֱ⠹ٶõ´Ù. ![]()
¿À¸¥ÂÊ¿¡´Â QListBox¸¦ ÅëÇØ¼ ÇöÀç °æ·ÎÀÇ ÆÄÀϵéÀ» Ãâ·ÂÇÑ´Ù. ÆÄÀÏÀº ¼±ÅÃÇÑÈÄ ´õºíŬ¸¯ÇÏ¸é ÆÄÀÏÀÇ ³»¿ëÀÌ ¿ÞÂÊ¿¡ Ãâ·ÂÀ̵ȴÙ. À̶§ htmlÆÄÀϰ°Àº °æ¿ì ·£´õ¸µÀ» °ÅÄ£ÈÄ Ãâ·ÂÀÌ µÈ´Ù. HTML ·£´õ¸µÀ» °ÅÄ£´Ù°í ÇØ¼ º¹ÀâÇÑ Äڵ尡 µé¾î°¡°Å³ª ÇÏÁö´Â ¾Ê´Â´Ù. QTextBrowser¿¡¼ HTML·£´õ¸µ °ü·Ã ÇÔ¼ö¸¦ Áö¿øÇϱ⠶§¹®ÀÌ´Ù.
¾Æ·§ ºÎºÐ¿¡´Â ÇÊÅÍ ÀÔ·ÂâÀÌ ÀÖ´Ù. ¸»±×´ë·Î ƯÁ¤ÇÑ È®ÀåÀÚ¸¦ °¡Áö´Â ÆÄÀϵ鸸À» ListBox¿¡ Ãâ·ÂÇϱâ À§Çؼ »ç¿ëÇÑ´Ù. Close¹öưÀ» ´©¸£¸é ÇÁ·Î±×·¥Àº Á¾·áµÇ¸ç, Á¦ÀÏ ¸¶Áö¸·¿¡´Â ÇöÀç ¿°í ÀÖ´Â ÆÄÀÏÀÇ À̸§À» Ãâ·ÂÇÏ´Â status bar°¡ ³õÀδÙ. 3 ÀÀ¿ë ¸¸µé±â3.1 kdevelop¸¦ ÀÌ¿ëÇÑ ÇÁ·ÎÁ§Æ® »ý¼º
ÀÌÁ¦ kdevelop¸¦ ÀÌ¿ëÇØ¼ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇϵµ·Ï ÇÑ´Ù. ÇÁ·ÎÁ§Æ®ÀÇ À̸§Àº qbrowser·Î ÇϰڴÙ. ÇÁ·ÎÁ§Æ® »ý¼ºÀ» ÇÏ¸é ¹Ì¸®ÀÛ¼ºµÈ ÅÛÇø´Áß Çϳª¸¦ ¼±ÅÃÇÏ°Ô µÉ°Çµ¥, ÀÌÁß C++ > Simple Kde ApplicationÀ» ¼±ÅÃÇϵµ·Ï ÇÑ´Ù. 3.2 designer¸¦ ÅëÇÑ UI »ý¼º
ÀÌÁ¦ designer¸¦ ÅëÇØ¼ UI¸¦ »ý¼ºÇÒ Â÷·¹´Ù. File > New¸¦ ¼±ÅÃÇÏ¸é ÆÄÀÏ ¼±Åà ´ëÈâÀÌ ¶á´Ù. ÆÄÀÏÀÇ À̸§Àº browserdlg·Î ÇÏ°í ÆÄÀÏÀÇ Å¸ÀÔÀº Widget (.ui)¸¦ ¼±ÅÃÇϵµ·Ï ÇÑ´Ù. ±×¸®°í Add to project¸¦ üũÇϵµ·Ï Çϰí OK ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
ÀÌÁ¦ srcµð·ºÅ丮 ¹Ø¿¡ browserdlg.ui ÆÄÀÏÀÌ »ý¼ºµÇ¾î ÀÖÀ» °ÍÀÌ´Ù. designer¸¦ ÀÌ¿ëÇØ¼ ´ÙÀ½°ú °°ÀÌ UI¸¦ ¸¸µéµµ·Ï ÇÑ´Ù.
»ç¿ëµÇ´Â À§Á¬Àº QListView, QTextBrowser, QLabel, QTextEdit, QPushButtonÀÌ´Ù. À§Á¬ÀÇ ¹èÄ¡¹æ¹ý¿¡ ´ëÇØ¼ ¼³¸íÀ» ÇÏÁø ¾Ê°Ú´Ù. ¸î¹ø ³ë°¡´Ù ¶Ù´Ùº¸¸é °¨ÀÌ ¿Ã°ÍÀÌ´Ù. ´Ù¸¸ QListView¿Í QTextBrowserÀ§Á¬À» ¹èÄ¡Çϱâ À§Çؼ LayoutÁß In Splitter¸¦ »ç¿ëÇßÀ½À» ÁÖ¸ñÇØ ÁÖ±æ ¹Ù¶õ´Ù. ![]()
¸ÞÀÎ À©µµ¿ìÀÇ À̸§Àº(±âº» À̸§ Form)Àº TBrowser·Î Çß´Ù.
UI¸¦ ¿Ï¼ºÇß´Ù¸é ÀúÀåÇÑÈÄ uic¸¦ ÀÌ¿ëÇØ¼ Äڵ带 »ý¼ºÇÑ´Ù. # uic -o browserdlg.h browserdlg.ui # uic -o browserdlg.cpp -i browserdlg.h browserdlg.ui
ÀÌÁ¦ ÇÁ·ÎÁ§Æ®¸¦ ´Ù½Ã ºÒ·¯¿Í¼ classess ºê¶ó¿ìÀú¸¦ º¸¸é TBrowser Ŭ·¡½º°¡ Ãß°¡µÇ¾î ÀÖ´Â°É È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ![]() 3.3 ½½·ÔÇÔ¼ö ¹× ¸â¹öÇÔ¼ö ÀÛ¼º
ÀÌÁ¦ ½½·ÔÇÔ¼ö¿Í ¸â¹öÇÔ¼ö¸¦ ÀÛ¼ºÇÏ¸é µÈ´Ù. ÀÌÀüÀÇ designer¸¦ ÀÌ¿ëÇÑ ¼ÒÄÏ ÇÁ·Î±×·¥ Á¦ÀÛ¿¡¼´Â ½½·ÔÇÔ¼ö¸¦ ¼ø¼ö°¡»óÇÔ¼ö·Î .ui¿¡¼ µî·ÏÇϰí .ui Ŭ·¡½º·Î ºÎÅÍ »ó¼Ó¹Þ¾Æ¼ ½ÇÁ¦ ±¸ÇöÀ» ÇßÁö¸¸, ¿©±â¿¡¼´Â ¸ðµç ÇÔ¼öÀÇ ¼±¾ð°ú ±¸ÇöÀ» QbrowserŬ·¹½º¿¡¼ ³¡³»µµ·Ï ÇϰڴÙ.
´ÙÀ½Àº QbrowserÀ» À§ÇÑ ÄÚµå´Ù. ¼³¸íÀº ÁÖ¼®À¸·Î ´ë½ÅÇϰڴÙ. #ifndef QBROWSER_H
#define QBROWSER_H
#include "browserdlg.h"
#include <qwidget.h>
#include <qstring.h>
class Qbrowser : public TBrowser
{
Q_OBJECT
public:
Qbrowser(QWidget *parent = 0, const char *name = 0);
void setDir(const QString &path);
~Qbrowser();
signals:
private slots:
// ListView¿¡¼ ItemÀ» Ŭ¸¯ÇßÀ» ¶§ È£ÃâµÇ´Â ½½·ÔÇÔ¼ö
void itemSelected(int index);
// ÇÊÅ͸µ ÀÔ·Ââ(LineEdit)¿¡ ÇÊÅÍÁ¶°ÇÀ» ÀÔ·ÂÇϰí
// ¿£ÅÍ۸¦ ´·¶À» ¶§ È£ÃâµÇ´Â ½½·ÔÇÔ¼ö
void setFilter();
private:
QString nameFilter; // ÇÊÅÍ Á¶°Ç ÀúÀå¿ë
QString basePath; // ±âº» µð·ºÅ丮 À̸§ ÀúÀå¿ë
QString CurrentPath; // ÇöÀç µð·ºÅ丮 À̸§ ÀúÀå¿ë
};
#endif
´ÙÀ½Àº ½ÇÁ¦ ±¸ÇöÀÌ´Ù. ÄÚµå´Â ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇöÀç µð·ºÅ丮ÀÇ ÆÄÀÏ ¸ñ·ÏÀ» ¾ò±â À§Çؼ Qdir Ŭ·¡½º¸¦ »ç¿ëÇß´Ù. Qdir ´ë½Å scandir()À̳ª opender()°è¿ÀÇ ÇÔ¼ö¸¦ »ç¿ëÇØµµ µÇ°ÚÁö¸¸ ´Ù¸¥ qtÇÔ¼öµé°ú À¯¿¬ÇÏ°Ô ¿¬°á½Ã۱â À§Çؼ´Â qt¿¡¼ Á¦°øÇÏ´Â ÇÔ¼öµéÀ» »ç¿ëÇÏ´Â°Ô ÆíÇÏ´Ù. #include "qbrowser.h" #include "browserdlg.h" #include "qbrowser.moc" #include <qdir.h> #include <qlistbox.h> #include <qmessagebox.h> #include <qtextbrowser.h> #include <qeuckrcodec.h> #include <qlabel.h> #include <qlineedit.h> Qbrowser::Qbrowser(QWidget *parent, const char *name) : TBrowser(parent, name) { // ±âº» ÇÊÅÍ Á¶°Ç nameFilter = "*.htm *.html *.txt *.xml"; // ÇöÀç °æ·Î¸¦ ¾Ë¾Æ³½´Ù. setDir(QDir::currentDirPath()); CurrentPath = QDir::currentDirPath(); // html¹®¼¿¡ ´ëÇØ¼´Â euc-kr ¹®ÀÚ¼ÂÀ» Àû¿ëÇÑ´Ù. // mimeSourceFactoryÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é ¿©·¯°¡Áö ÀÎÅÍ³Ý µ¥ÀÌÅ͸¦ ¹®¼Áß¿¡ Ãâ·Â // ½Ãų ¼ö ÀÖ´Ù. Browser->mimeSourceFactory()->setExtensionType("html", "text/html; charset=euc-kr"); Browser->mimeSourceFactory()->setExtensionType("text", "text/euc-kr"); // ÇÊÅÍâ¿¡ ÇÊÅÍÁ¶°ÇÀ» ÀÔ·ÂÇÏ°í ¿£ÅÍ۸¦ ´©¸£¸é // setFilter ½½·ÔÇÔ¼ö°¡ ½ÇÇàµÈ´Ù. connect(EditFilter, SIGNAL(returnPressed ()), SLOT(setFilter())); // ListView¿¡¼ ÆÄÀÏÀ» ¼±ÅÃ(´õºí Ŭ¸¯)Çϸé // itemSelected ½½·ÔÇÔ¼ö°¡ ½ÇÇàµÈ´Ù. connect(ListFile, SIGNAL(selected(int)), SLOT(itemSelected(int))); } void Qbrowser::setFilter() { // *.[.]+¿¡ ´ëÇØ¼ ÇÊÅ͸¦ Àû¿ëÇÑ´Ù. if (strstr(EditFilter->text().ascii(), "*.") != NULL) { nameFilter = EditFilter->text(); setDir(CurrentPath); } else { // ±×·¸Áö ¾Ê´Ù¸é ÆÄÀÏÀ» ¿ÀÇÂÇÑ´Ù. if (QFileInfo(EditFilter->text()).isReadable()) { Browser->setSource(EditFilter->text()); statusBar->setText(EditFilter->text()); } else { QMessageBox::warning(this, "Error", "File Open Error", "Close"); } } } void Qbrowser::setDir(const QString &path) { QDir dir(path, nameFilter, QDir::DirsFirst); dir.setMatchAllDirs(true); if (!dir.isReadable()) return; ListFile->clear(); QStringList entries = dir.entryList(); QStringList::ConstIterator it = entries.constBegin(); // µð·ºÅ丮 ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù. while(it != entries.constEnd()) { if(*it != ".") ListFile->insertItem(*it); ++it; } basePath = dir.canonicalPath(); } // ÆÄÀÏÀ» ¼±ÅÃÇßÀ» °æ¿ì // ÆÄÀÏÀÇ ³»¿ëÀ» Ãâ·ÂÇÑ´Ù. void Qbrowser::itemSelected(int index) { QString path = basePath + "/" + ListFile->text(index); if (QFileInfo(path).isDir()) { setDir(path); CurrentPath = path; } else { Browser->setSource(path); statusBar->setText(ListFile->text(index)); } } Qbrowser::~Qbrowser() { } 3.4 QTextBrowser
¿©±â¿¡¼ °¡Àå Áß¿äÇÑ Å¬·¡½º´Â QTextBrowserŬ·¡½º ÀÏ °ÍÀÌ´Ù. ÀÌ Å¬·¡½º´Â QTextEdit·Î ºÎÅÍ »ó¼ÓµÇ´Â ÇÔ¼ö·Î ´ÜÁö º¼¼ö¸¸ ÀÖ´Â ÅØ½ºÆ® ºê¶ó¿ìÀú À§Á¬À» ¸¸µç´Ù. ¶ÇÇÑ HTML·£´õ¸µ ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. À̿ܿ¡µµ Űº¸µå¸¦ ÀÌ¿ëÇÑ µÚ·Î(backward), ¾ÕÀ¸·Î(forward), ȨÀ¸·Î(home), ´Ù½ÃÀбâ(reload)±â´É±îÁö °¡Æ¼°í ÀÖ´Ù. ÀÌÀü ¹®¼·Î °¡±â À§Çؼ´Â alt+<-, ¾Õ ¹®¼·Î °¡±â À§Çؼ´Â alt+->۸¦ »ç¿ëÇÏ¸é µÈ´Ù. ´Ù½ÃÀбâ¿Í ȨÀ¸·Î´Â ã¾ÆºÁ¾ß ÇÒ°Í °°´Ù.
QTextEditÀÇ ¶Ç´Ù¸¥ Æí¸®ÇÑ ±â´ÉÀ̶ó¸é ÀÏÀÏÀÌ ÆÄÀÏÀ» ¿ÀÇÂÇØ¼ ÀоîµéÀÌ°í ´Ý´ÂµîÀÇ º¹ÀâÇÑ ÀÛ¾÷ÀÌ ÇÊ¿ä ¾øÀÌ setSourceÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ Çѹø¿¡ ¹®¼¸¦ Àоîµé¿©¼ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ´ÜÁö ÆÄÀÏÀ̸§À» setSourceÇÔ¼öÀÇ ÀÎÀÚ·Î ³Ñ°ÜÁֱ⸸ ÇÏ¸é µÈ´Ù. 3.5 ¼Ò½º ´Ù¿î·Îµå ¹Þ±â
¼Ò½º´Â
JCvs¿¡¼ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ´Ù. ¸¸¾à cvsŬ¶óÀÌ¾ðÆ®°¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î Äڵ带 ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù. # cvs -d :pserver:anonymous@cvs.joinc.co.kr:/home/jcvs/kdevelop co qbrowser 4 °á·Ð
°£´ÜÇÏ°Ô ÆÄÀÏÀ» ºê¶ó¿ì¡ÇÏ°í °á°ú¸¦ Ãâ·ÂÇØÁÖ´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸¾Ò´Ù. Á¶±Ý¸¸´õ ¼öÁ¤ÇÑ´Ù¸é °£´ÜÇÑ À¥ºê¶ó¿ìÀú Á¤µµ¸¦ ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. Æ´Æ´È÷ ¸¸µé¾î º¼ »ý°¢ÀÌ´Ù.
Cache Error |
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|