Development/Tutorials/Using KXmlGuiWindow (es): Difference between revisions

From KDE TechBase
(translation to spanish)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials}}
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
{{TutorialBrowser_(es)|


{{TutorialBrowser|
series=Tutorial para principiantes|


series=Beginner Tutorial|
name=Como usar usar KXmlGuiWindow|


name=Cómo emplear la clase KXmlGuiWindow|
pre=[[Development/Tutorials/First_program_(es)|Tutorial 1 - Hola Mundo]]|


pre=[[Development/Tutorials/First_program_(es)|Tutorial 1 - ¡Hola mundo!]]|
next=[[Development/Tutorials/Using_KActions|Tutorial 3 - KActions y XMLGUI]]|  
 
next=[[Development/Tutorials/Using_KActions|Tutorial 3 - KActions y XmlGui]]|  


reading={{class|KXmlGuiWindow}}
reading={{class|KXmlGuiWindow}}
}}
}}


== Descripción ==
==Resumen==
Este tutorial continúa la travesía, emprendida desde el precedente [[Development/Tutorials/First_program_(es)|¡Hola mundo!]], analizando, esta vez, la clase {{class|KXmlGuiWindow}}.
Este tutorial continua el camino iniciado por el tutorial [[Development/Tutorials/First_program_(es)|Hola Mundo]], haciendo una introducción a la clase {{class|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.
En el tutorial anterior, el programa mostró una "caja de diálogo" (dialog box), ahora vamos a añadir mas funcionalidad al programa.


[[image:introtokdetutorial2.png|frame|center]]
[[image:introtokdetutorial2.png|frame|center]]


== Utilizando KXmlGuiWindow ==
==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: <tt>mainwindow.cpp</tt> y <tt>mainwindow.h</tt>, 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).
 
La clase {{class|KXmlGuiWindow}} proporciona una vista de la venta principal con una barra de menú, una barra de herramientas, una barra de estado y un área principial en el centro del widget. La mayoria de las aplicaciones de KDE derivarán de esta clase, que proporciona una manera facil de definir el layout del menú y la barra de herramientas mediante archivos XML (esta tecnología se llama XMLGUI). Si bien no usaremos XMLGUI en ''este'' tutorial, lo haremos en el siguiente.
 
Con el fin de tener un KXmlGuiWindow que pueda usarse, debemos heredar de él. Por lo que creamos dos archivos, <tt>mainwindow.cpp</tt> y <tt>mainwindow.h</tt> que contendrán nuestro código.


=== mainwindow.h ===
===mainwindow.h===
<code cppqt>
<code cppqt n>
#ifndef MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#define MAINWINDOW_H
Line 43: Line 45:
#endif
#endif
</code>
</code>
Primeramente heredamos nuestra nueva clase, en la línea 7, con la sentencia: <tt>class MainWindow : public KXmlGuiWindow</tt>.
First we Subclass KXmlGuiWindow on line 7 with <tt>class MainWindow : public KXmlGuiWindow</tt>.


Declaramos el constructor: <tt>MainWindow(QWidget *parent=0);</tt>.
Then we declare the constructor with <tt>MainWindow(QWidget *parent=0);</tt>.


Y para terminar, declaramos un puntero al objeto que hará de contexto principal en nuestra aplicación. {{class|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.
And finally we declare a pointer to the object that will make up the bulk of our program. {{class|KTextEdit}} is a generic richtext editor with some KDE niceties like cursor auto-hiding.


=== mainwindow.cpp ===
===mainwindow.cpp===
<code cppqt>
<code cppqt n>
#include "mainwindow.h"
#include "mainwindow.h"


MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
{
   textArea = new KTextEdit;
   textArea = new KTextEdit();
   setCentralWidget(textArea);
   setCentralWidget(textArea);
   setupGUI();
   setupGUI();
}
}
</code>
</code>
First, of course, on line 1 we have to include the header file containing the class declaration.


Por supuesto, en la primera línea debemos incluir la cabecera que contiene la declaración de la nueva clase.
On line 5, we initialise our text editor with an object. Then on line 6 we use KXmlGuiWindow's built-in setCentralWidget() function which tells the KXmlGuiWindow what should appear in the central section of the window.
 
En la línea 5, inicializamos el puntero a un nuevo objeto {{class|KTextEdit}}, a través de <tt>new</tt>. Luego, en la línea 6, usamos la función heredada <tt>setCentralWidget()</tt>, 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 <tt>KXmlGuiWindow::setupGUI()</tt>, la cual preconfigura la interfaz de usuario y crea las barras de menú por defecto (Preferencias, Ayuda).
Finally, KXmlGuiWindow::setupGUI() is called which does a lot of behind-the-scenes stuff and creates the default menu bars (Settings, Help).


== Fichero principal - main.cpp ==
==Actualizando main.cpp==
Para terminar la aplicación, debemos primero agregar unas pocas líneas al fichero <tt>main.cpp</tt>:
Con el fin de ejecutar esta ventana, necesitamos añadir unas pocas lineas a main.cpp:
 
===main.cpp===
=== main.cpp ===
<code cppqt n>
<code cppqt>
#include <KApplication>
#include <KApplication>
#include <KAboutData>
#include <KAboutData>
Line 82: Line 82:
   KAboutData aboutData( "tutorial2", 0,
   KAboutData aboutData( "tutorial2", 0,
       ki18n("Tutorial 2"), "1.0",
       ki18n("Tutorial 2"), "1.0",
       ki18n("Simple Área de Texto"),
       ki18n("A simple text area"),
       KAboutData::License_GPL,
       KAboutData::License_GPL,
       ki18n("Copyright (c) 2007 Developer") );
       ki18n("Copyright (c) 2007 Developer") );
Line 95: Line 95:
}
}
</code>
</code>
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.
The only new lines here (compared to Tutorial 1) are 5, 18 and 19. On line 18, we create our MainWindow object and then on line 19, we display it.


== CMake ==
==CMake==
La mejor forma de construir el programa es usando CMake. Lo único que ha cambiado, en comparación al anterior tutorial, es que <tt>mainwindow.cpp</tt> ha sido añadida a la lista de ficheros fuente, y <tt>tutorial1</tt> se ha renombrado a <tt>tutorial2</tt>.
La mejor manera de compilar el programa es usar CMake. Lo único que ha cambiado desde el tutorial 1 es que hemos añadido <tt>mainwindow.cpp</tt> a la lista de fuentes y hemos cambiado <tt>tutorial1</tt> por <tt>tutorial2</tt>.


=== CMakeLists.txt ===
===CMakeLists.txt===
<code ini>
<code ini n>
project (tutorial2)
project (tutorial2)


find_package(KDE4 REQUIRED)
find_package(KDE4 REQUIRED)
include_directories( ${KDE4_INCLUDES} )
include_directories(${KDE4_INCLUDES})


set(tutorial2_SRCS  
set(tutorial2_SRCS  
main.cpp
  main.cpp
mainwindow.cpp
  mainwindow.cpp
)
)


kde4_add_executable(tutorial2 ${tutorial2_SRCS})
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})
</code>
</code>


=== Compilación ===
===Compilando===
Para compilar, enlazar y correr, a la vez, la aplicación:
Para compilarlo, enlazarlo y ejecutarlo, usa:
  cmake . && make && ./tutorial2
mkdir build && cd build
  cmake ..
make
./tutorial2
 
==Avanzando==
Ahora puedes continuar con el [[Development/Tutorials/Using_KActions|Tutorial 3 - Usar KActions]].


[[Category:C++]]
[[Category:C++]]

Revision as of 14:45, 19 September 2008


Development/Tutorials/Using_KXmlGuiWindow

Como usar usar KXmlGuiWindow
Serie   Tutorial para principiantes
Requisitos previos   Tutorial 1 - Hola Mundo
Siguiente   Tutorial 3 - KActions y XMLGUI
Lectura avanzada   KXmlGuiWindow

Resumen

Este tutorial continua el camino iniciado por el tutorial Hola Mundo, haciendo una introducción a la clase KXmlGuiWindow.

En el tutorial anterior, el programa mostró una "caja de diálogo" (dialog box), ahora vamos a añadir mas funcionalidad al programa.

KXmlGuiWindow

La clase KXmlGuiWindow proporciona una vista de la venta principal con una barra de menú, una barra de herramientas, una barra de estado y un área principial en el centro del widget. La mayoria de las aplicaciones de KDE derivarán de esta clase, que proporciona una manera facil de definir el layout del menú y la barra de herramientas mediante archivos XML (esta tecnología se llama XMLGUI). Si bien no usaremos XMLGUI en este tutorial, lo haremos en el siguiente.

Con el fin de tener un KXmlGuiWindow que pueda usarse, debemos heredar de él. Por lo que creamos dos archivos, mainwindow.cpp y mainwindow.h que contendrán nuestro código.

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

First we Subclass KXmlGuiWindow on line 7 with class MainWindow : public KXmlGuiWindow.

Then we declare the constructor with MainWindow(QWidget *parent=0);.

And finally we declare a pointer to the object that will make up the bulk of our program. KTextEdit is a generic richtext editor with some KDE niceties like cursor auto-hiding.

mainwindow.cpp

  1. 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.

On line 5, we initialise our text editor with an object. Then on line 6 we use KXmlGuiWindow's built-in setCentralWidget() function which tells the KXmlGuiWindow what should appear in the central section of the window.

Finally, KXmlGuiWindow::setupGUI() is called which does a lot of behind-the-scenes stuff and creates the default menu bars (Settings, Help).

Actualizando main.cpp

Con el fin de ejecutar esta ventana, necesitamos añadir unas pocas lineas a 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("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();

} The only new lines here (compared to Tutorial 1) are 5, 18 and 19. On line 18, we create our MainWindow object and then on line 19, we display it.

CMake

La mejor manera de compilar el programa es usar CMake. Lo único que ha cambiado desde el tutorial 1 es que hemos añadido mainwindow.cpp a la lista de fuentes y hemos cambiado tutorial1 por 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})

Compilando

Para compilarlo, enlazarlo y ejecutarlo, usa:

mkdir build && cd build
cmake ..
make
./tutorial2

Avanzando

Ahora puedes continuar con el Tutorial 3 - Usar KActions.