| Tutorial Series | Beginner Tutorial |
| Previous | 튜트리얼 1 - Hello World |
| What's Next | 튜트리얼 3 - KActions과 XMLGUI |
| Further Reading | KXmlGuiWindow |
Contents |
이 튜트리얼은 첫 번째 프로그램 튜트리얼에서 계속되며, KXmlGuiWindow 클래스를 소개할 것이다.
이전 튜트리얼에서 프로그램은 팝업되는 다이얼로그박스로 나타났지만, 기능적인 어플리케이션으로 나아가기 위해 단계를 밟아 나아가야한다.
KXmlGuiWindow 는 중심의 메뉴바, 툴바, 상태바와 큰 위젯을 위한 중간의 메인 창이 포함된 하나의 전체 메인 윈도우를 제공한다. 대부분의 KDE 어플리케이션은 이 클래스로부터 상속받을 것이다. 이것은 메뉴와 툴바 레이아웃을 XML 파일을 통해 정의하는 쉬운 방법을 제공한다. ( 이 기술을 XMLGUI라고 부른다.) 우리는 이번 챕터에서 XMLGUI를 사용하지 않을 것이며, 다음부터 사용할 것이다.
유용한 KXmlGuiWindow를 사용하기 위해서는 이 클래스에서 상속받아야만 한다. 그러므로 우리는 코드에 포함될 두 개의 파일(mainwindow.cpp, mainwindow.h)을 생성한다.
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <KXmlGuiWindow>#include <KTextEdit>class MainWindow : public KXmlGuiWindow
{public:
MainWindow(QWidget *parent=0);
private:
KTextEdit* textArea;
};
#endif먼저 7번째 줄에서 KXmlGuiWindow를 상속받는다. (class MainWindow : public KXmlGuiWindow)
그리고 생성자를 선언한다. (MainWindow(QWidget *parent=0);)
그리고 마지막으로 우리의 프로그램 대부분을 전담하는 오브젝트의 포인터를 선언한다. KTextEdit는 커서 auto-hiding과 같은 KDE의 몇몇 미미한 것들을 포함한 일반적인 richtext 에디터이다.
#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{textArea = new KTextEdit();
setCentralWidget(textArea);
setupGUI();
}First, of course, on line 1 we have to include the header file containing the class declaration.
line 5에선, 오브젝트와 같이 텍스트 에디터를 초기화하였다. line 6에서는 KXmlGuiWindow의 setCentralWidget() 함수를 사용하였다. 이 함수는 KXmlGuiWindow에게 윈도우의 중앙 섹션에 무엇이 보여져야하는지를 말해준다.
마지막으로 KXmlGuiWindow::setupGUI()는 많은 behid-the-scenes의해 호출며, 기본적인 메뉴바(Settings, Help)를 생성한다.
실제적으로 이 윈도우를 실행하기 위해 main.cpp에 몇 줄을 추가할 필요가 있다. :
#include <KApplication>#include <KAboutData>#include <KCmdLineArgs>#include "mainwindow.h"int main (int argc, char *argv[])
{KAboutData aboutData( "tutorial2", 0,
ki18n("Tutorial 2"), "1.0",
ki18n("A simple text area"),
KAboutData::License_GPL,
ki18n("Copyright (c) 2007 Developer") );
KCmdLineArgs::init( argc, argv, &aboutData );
KApplication app;MainWindow* window = new MainWindow();
window->show();
return app.exec();
}(튜트리얼1과 비교해서) 추가된 줄은 5, 18, 19라인이다. 18라인에서 우리는 MainWindow 오브젝트를 생성하고, 19라인에서 이것을 보이게 한다.
프로그램을 빌드하는 가장 좋은 방법은 CMake를 사용하는 것이다. 튜트리얼1 이후로 변경된 점은 소스 리스트에 mainwindow.cpp가 추가된 것과, tutorial1이 tutorial2로 바뀐 것 뿐이다.
project (tutorial2)
find_package(KDE4 REQUIRED)
include_directories(${KDE4_INCLUDES})
set(tutorial2_SRCS main.cpp
mainwindow.cpp
)kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})
컴파일, 링크, 실행을 하기 위해서 다음을 입력하라. :
mkdir build && cd build cmake .. make ./tutorial2