KTextEditor
How to use the KTextEditor Interfaces
Overview | Design | Coding Guidelines | Porting to KDE 4 | Using
This HOWTO will explain step by step how to load a KTextEditor component and plug a single View into a KMainWindow.
Tobics:
The Header File
The following class only contains two pointers to a Document and its View.
#include <kxmlguiwindow.h>
namespace KTextEditor
{
class Document;
class View;
}
class MainWindow : public KXmlGuiWindow
{
Q_OBJECT
public:
MainWindow();
~MainWindow();
private:
KTextEditor::View *m_view;
KTextEditor::Document *m_document;
};
The Mainwindow Implementation
The following source code queries for a Editor part by using the EditorChooser. If the returned Editor is invalid, we simply quit, otherwise we create a new document and a view and plug it into the mainwindow.
#include "mainwindow.h"
#include <ktexteditor/document.h>
#include <ktexteditor/view.h>
#include <ktexteditor/editor.h>
#include <ktexteditor/editorchooser.h>
#include <kxmlguifactory.h>
#include <kmessagebox.h>
MainWindow::MainWindow ()
: KXmlGuiWindow(),
m_view(0),
m_document(0)
{
if (!editor) {
KMessageBox::error(this, i18n("A KDE text-editor component could not be found;\n"
"please check your KDE installation."));
kapp->exit(1);
}
m_document = editor->createDocument(0);
m_view = m_document->createView(this);
setCentralWidget(m_view);
setXMLFile("mainwindowui.rc");
guiFactory()->addClient(m_view);
show ();
}
MainWindow::~MainWindow()
{
if (m_document) {
guiFactory()->removeClient(m_view);
// the document deletes its views itself
delete m_document;
}
}
Notes
In order to compile link against the following libraries:
- ktexteditor
- kdeui
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:56:48 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:56:48 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.