Development/Tutorials/Using KXmlGuiWindow (es)

From KDE TechBase
Revision as of 21:26, 24 September 2007 by Ohmius (talk | contribs) ("Using KXmlGuiWindow" article translation (to spanish))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Development/Tutorials


Cómo emplear la clase KXmlGuiWindow
Tutorial Series   Beginner Tutorial
Previous   Tutorial 1 - ¡Hola mundo!
What's Next   Tutorial 3 - KActions y XmlGui
Further Reading   KXmlGuiWindow

Descripción

Este tutorial continúa la travesía, emprendida desde el precedente ¡Hola mundo!, analizando, esta vez, la clase KXmlGuiWindow.

En el tutorial anterior vimos cómo la aplicación lanzaba una caja de diálogo, pero en este caso nos adentraremos en producir una aplicación más funcional.

Utilizando KXmlGuiWindow

En virtud de lograr una instancia KXmlGuiWindow útil, tendremos que heredarla en una nueva clase, donde añadiremos las funcionalidades pertinentes que deseemos para la aplicación. Crearemos dos ficheros: mainwindow.cpp y mainwindow.h, que contendrán el código. Así, nuestra nueva clase heredará desde KXmlGuiWindow, ya que emplea XML (por ejemplo, para establecer la estructura de los menús).

mainwindow.h

  1. ifndef MAINWINDOW_H
  2. define MAINWINDOW_H
  1. include <KXmlGuiWindow>
  2. include <KTextEdit>

class MainWindow : public KXmlGuiWindow {

 public:
   MainWindow(QWidget *parent=0);
 private:
   KTextEdit* textArea;

};

  1. endif

Primeramente heredamos nuestra nueva clase, en la línea 7, con la sentencia: class MainWindow : public KXmlGuiWindow.

Declaramos el constructor: MainWindow(QWidget *parent=0);.

Y para terminar, declaramos un puntero al objeto que hará de contexto principal en nuestra aplicación. KTextEdit es una clase que representa un editor de texto enriquecido, acompañado de algunas sutilezas, como el ocultamiento automático de cursor, entre otras.

mainwindow.cpp

  1. include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) {

 textArea = new KTextEdit;
 setCentralWidget(textArea);
 setupGUI();

}

Por supuesto, en la primera línea debemos incluir la cabecera que contiene la declaración de la nueva clase.

En la línea 5, inicializamos el puntero a un nuevo objeto KTextEdit, a través de new. Luego, en la línea 6, usamos la función heredada setCentralWidget(), quien comunica a la instancia KXmlGuiWindow que el editor de texto debe estar ubicado en la sección central de la ventana.

Terminamos con el llamado a la función KXmlGuiWindow::setupGUI(), la cual preconfigura la interfaz de usuario y crea las barras de menú por defecto (Preferencias, Ayuda).

Fichero principal - main.cpp

Para terminar la aplicación, debemos primero agregar unas pocas líneas al fichero main.cpp:

main.cpp

  1. include <KApplication>
  2. include <KAboutData>
  3. include <KCmdLineArgs>
  1. include "mainwindow.h"

int main (int argc, char *argv[]) {

 KAboutData aboutData( "tutorial2", 0,
     ki18n("Tutorial 2"), "1.0",
     ki18n("Simple Área de Texto"),
     KAboutData::License_GPL,
     ki18n("Copyright (c) 2007 Developer") );
 KCmdLineArgs::init( argc, argv, &aboutData );
 
 KApplication app;

 MainWindow* window = new MainWindow();
 window->show();
 return app.exec();

} Las únicas que nos refieren novedad (tomando en cuenta el primer tutorial) son las líneas 18 y 19. En la linea 18 creamos una instancia MainWindow, nuestra nueva clase heredada de KXmlGuiWindow, y en la 19 la mostramos.

CMake

La mejor forma de construir el programa es usando CMake. Lo único que ha cambiado, en comparación al anterior tutorial, es que mainwindow.cpp ha sido añadida a la lista de ficheros fuente, y tutorial1 se ha renombrado a tutorial2.

CMakeLists.txt

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})

Compilación

Para compilar, enlazar y correr, a la vez, la aplicación, usa:

cmake . && make && ./tutorial2