Tutorial GTK# – Primeros pasos

El siguiente tema de nuestro tutorial de GTK# es “Primeros Pasos”. básicamente vamos a explicar como se desarrolla una pequeña ventana que responderá al evento de “cerrarse”, lo cual sucede cuando se hace clic en el botón de cerrar de la barra de titulo de la ventana.

y para esto nuestro código es:

using System;
using Gtk;

public class FirstSharpApp : Window {

    public FirstSharpApp()
    {
        SetDefaultSize(250, 200);
        SetPosition(WindowPosition.Center);

        DeleteEvent += delegate { Application.Quit(); };

        Show();
    }

    public static void Main()
    {
        Application.Init();
        new FirstSharpApp();
        Application.Run();
    }
}

El codigo anterior lo guardamos en un archivo con nombre firstapp.cs, el ejemplo mostrara una pequeña ventana que se orientara al centro de nuestra pantalla.para compilar nuestro primer ejemplo tecleamos en una consola lo siguiente:

gmcs -pkg:gtk-sharp-2.0 firstapp.cs

Ahora explicamos el codigo anterior:

using System;
using Gtk;

para acceder a las clases de GtkSharp necesitamos incluir al inicio de nuestro código el nombre de espacios Gtk, esto como les comento permite usar las clases para trabajar con GtkSharp. también existe la posibilidad de no definir el nombre de espacios Gtk y definir directamente en nuestras clases la sentencia Gtk.Window

public class FirstSharpApp : Window {

declaramos una clase llamada FirstSharpApp que hereda de la clase Window, para esto separamos el nombre de nuestra clase seguido de 2 puntos y el nombre de la clase de la cual queremos heredar sus propiedades y comportamiento.

Enseguida declaramos el constructor de nuestra clase:

public FirstSharpApp()
    {
        SetDefaultSize(250, 200);
        SetPosition(WindowPosition.Center);

        DeleteEvent += delegate { Application.Quit(); };

        Show();
    }

Recordemos que en POO(Programación Orientada a Objetos), los constructores de nuestra clase llevan el mismo nombre que la clase que los define, en este caso nuestra clase se llama FirstSharApp y el constructor de igual forma se llama igual, por otro lado los constructores no especifican un tipo de dato de retorno, inclusive si no definimos un constructor este se crea automáticamente en memoria.

En nuestro ejemplo de constructor establecemos el tamaño de nuestra ventana a 250×200 y establecemos su posición hacia el centro.también definimos un delegado para cuando suceda el evento de cerrar la ventana y el código que se ejecuta es:

Application.Quit();

Aquí de otra manera podemos definir un nombre de un método que nos interese que maneje la acción, por ejemplo:

this.DeleteEvent += OnCloseWindow;
protected void OnCloseWindow(object o,DeleteEventArgs args)
{
   Application.Quit();
}

El método Show( ) permite que se muestre la ventana en nuestro escritorio

Finalmente declaramos nuestro método Main que es el punto de entrada a nuestra aplicación, el cual a través de las llamadas a

Application.Init();

permite inicializar Gtk , enseguida se instancia nuestra clase FirstSharpApp a la vez que se ejecuta el constructor y la aplicación se ejecuta:

new FirstSharpApp();
Application.Run();

Eso es todo por el tema de primeros pasos.

Aprendiendo Gtk# en una hora o menos

Aprendiendo Gtk# en una hora o menos

El siguiente tutorial de Gtk# es básico y sirve para los recién iniciados en la programación de interfaces gráficas de usuario usando Gtk para C#, el cual es conocido por Gtk#(Gtk Sharp).

Los temas que componen el siguiente tutorial son:

  1. Introducción.
  2. Primeros pasos.
  3. Contenedores.
  4. Menús.
  5. Barras de Herramientas.
  6. Eventos.
  7. Controles.
  8. Diálogos.
  9. Cairo.

Introducción

GTK+ es una librería para desarrollar interfaces gráficas y el desarrollo de GTK+ se hace con el lenguaje de programación C. Al día de hoy la vasta colección de programas libres y “open source” son desarrollados con Qt y GTK+.

Básicamente GTK+ es una interfaz de programación de aplicaciones orientada a objetos y la base de GTK+ es GLIB Object.GObject permite desarrollar capas para varios lenguajes de programación como C++, Python, Perl, Java y mas lenguajes.

GTK+ confía en las siguientes librerías:

  • Glib. proporciona tipos de datos,utilidades para cadenas, mensajes de error,notificación y muchas características muy interesantes.
  • Pango. es una librería que permite la internacionalización.
  • Atk. proporciona herramientas las cuales ayudan a usuarios con “ciertas desventajas físicas” a trabajar con la computadora.
  • Gdk. envoltorios o capas para funciones de bajo nivel que permiten dibujar y tratar con parámetros de ventanas, mucha de su funcionalidad ha sido delegada a la librería Cairo.
  • GdkPixbuf. permite manipular la carga de imágenes y el buffer de pixel.
  • Cairo. es una librería para desarrollar vectores gráficos en 2D y se incluye en GTK+ desde la versiones 2.8.

GTK# es un envoltorio sobre GTK+ para lenguaje C# y facilita el desarrollo de aplicaciones para el escritorio GNOME usando Mono.

GTK# también es un sistema manejado por eventos donde cada control o “widget” posee métodos que son llamados cuando ocurre un evento en particular.

Las aplicaciones desarrolladas usando GTK# se ejecutan sobre varías plataformas como Linux, Windows y Mac OS X.

Para compilar los programas que desarrolláremos durante el tutorial, en la línea de comandos escribimos lo siguiente:

gmcs -pkg:gtk-sharp-2.0 myprogram.cs

básicamente usamos el compilador gmcs para compilar nuestras aplicaciones GTK#

contacto: jacobnix@gmail.com , vronskij@gmail.com