Hola Mundo en Mono – Version Grafica

Escrito por:

Bueno habiendo visto ya la version en consola de “hola mundo” junto con una pequeña introduccion a MonoDevelop ahora vamos a continuar un paso mas alla: la version grafica. Para ello usaremos el diseñador de interfaces Stetic que viene con MonoDevelop. Es importante aclarar una cosa: ahi algunos que viendo este tuto diran que esto es cosa de linuxeros y nada mas, pero no es asi, en primer lugar cualquier aplicacion que creen con Mono y Monodevelop podra ser ejecutada usando el framework de .NET, ademas para diseñar las interfaces usaremos GTK# que tambien es multiplataforma, pero esas cosas las profundizare mas en otro post, por el momento vamos a lo practico:

Abrimos MonoDevelop, vamos a Archivo–>Nuevo–>Solucion, elegimos C# nuevamente a la izquierda y a la derecha elegimos proyecto GTK# 2.0, le damos un nombre a proyecto y luego apretamos siguiente, en la siguiente ventana no hacemos nada, solo le damos al boton OK para que MonoDevelop se encargue de crear todos los archivos necesarios para comenzar a trabajar.

Hola Mundo en Mono   Version Grafica
Click para agrandar

De todos los archivos creados son 2 los mas importantes, Main.cs y MainWindows.cs estos se pueden ver en la ventana solucion
Hola Mundo en Mono   Version Grafica

Para empezar a trabajar con el trabajo de diseño, se debe hacer dobre click sobre MainWindows.cs y seleccionar ‘diseñador’ que se encuentra en la parte inferior. De esta manera podremos ver la ventana sobre la cual podremos empezar a trabajar

Hola Mundo en Mono   Version Grafica
Click para agrandar

A lo que me refiero es que los controles o componentes deben estar dentro de alguno de estos u otros contenedores. Para ser más gráfico, en este ejemplo quiero usar dos controles; un “Label” y un “Button” y quiero que al pulsar sobre el botón aparezca en la etiqueta un “Hola Mundo”. Por lo tanto, necesito pensar en el orden en que estarán los controles, por lo que para esta pequeña prueba solo necesito una tabla de una columna y dos filas usando el “VBox” y después incluyendo los controles en su fila correspondiente.

Hola Mundo en Mono   Version Grafica
Todos los componentes se encuentran en la barra de herramientas a la derecha, el Vbox se encuentra dentro de los llamados ‘Containers’ y el label y el button dentro de los ‘Componentes’. Ahora es necesario ponerle nombre a los controles, esto se logra usando las pestaña de “Propiedades” a la derecha, es tan simple como seleccionar el control y modificar su propiedades de forma muy fácil. Para los que usaron Visual Basic alguna vez (calculo que todos) esto es lo mismo.

En este proyecto uso los siguientes valores:

Para el “MainWindow”
Window Title: Proyecto Hola Mundo
Window Position: Centered

Para el “label”
Widget name: texto
Label: Presiona el botón
Justification: Center

Para el “button”
Widget name: boton
Buton Type: Text and Icon
Icon: gtk-yes
Label: Aceptar

El siguiente paso a seguir es declarar la acción del botón, que cuando se de un click este haga algo, para realizar esta declaración es necesario seleccionar el botón y después ir a la pestaña “señales” en las “Propiedades del componente”. Ahí podremos ver un listado de comportamientos de control, buscamos el que se usa al pulsar el botón que se llama “Clicked”. Al lado de este evento veremos un mensaje que dice “Click here to add a new handler”, así que le hago caso y le doy un click para ponerle un nombre… se me ocurre por ejemplo: “boton_Clicked”, osea “boton” ya que es el nombre del control y agregarle el sufijo del nombre del evento, para que nuestro código tenga coherencia.
Hola Mundo en Mono   Version Grafica

Listo, ahora es tiempo de ir a trabajar sobre el código pulsando sobre el botón “Código Fuente” del “MainWindow.cs” y veremos lo siguiente:

using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{
public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
}

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}

protected virtual void boton_Clicked (object sender, System.EventArgs e)
{

}
}

Vemos ahora que ahi una funcion llamada boton_Clicked que MonoDevelop agrego automaticamente, y ahora vamos a agregar el codigo bendito para que se muestre un “Hola Mundo” en el label, seria asi:

texto.Text=”Hola Mundo!!”;

Ya quedó, eso fue todo, solo un consejo que quiero darles es que se fijen que es ‘texto.Text’ y no ‘texto.text’, estamos hablando de C# y este es case sensitive. Podemos probar como funciona nuestra aplicación de forma rápida, pulsando sobre el icono de ejecutar.

Hola Mundo en Mono   Version Grafica

Queda asi:
Hola Mundo en Mono   Version Grafica

Espero que les haya gustado y voy a estar esperando sus comentarios.

Post similares:

  • Pingback: Bitacoras.com

  • Jhonathan

    Hola, no me aparece las opciones de entorno gráfico. Qué me falta?

  • http://www.humorperruno.com.ar perro

    @jhonathan: te recomiendo que sigas el post al pie de la letra porque no veo ninguna razon para que no te aparezca el entorno grafico.

  • Jhonathan

    perro, tienes razon, sino que primero intente con un proyecto de VB en lugar de C#, quisiera saber si hay manera de usar un diseñador gráfico también para VB, gracias

  • http://www.humorperruno.com.ar perro

    @Jhonathan: la verdad hace mucho que no uso Mono para programar, pero en las ultimas noticias que escuche se hablaba de una version Alpha de un diseñador usando Windows Forms para Linux… mas alla de eso no escuche nada.

    Gracias por volver a comentar :)

  • Christyan Duarte

    Oigan, nadie va a seguir con estos tutos de mono?

    • http://blogjapon.com.ar perro

      No, lamentablemente no.

  • matias

    ahh… esta interesante, voy a probarlo para probarlo con gambas, mono esta centrado en C#, gambas se centra en Basic, ambos visuales… deben tener las mismas diferencias que tenian los viejos c y basic… o sea, basic es facil, c es mas potente, je

    • http://blogjapon.com.ar perro

      No creo que sea mas facil. Mono a avanzado mucho y se ha vuelto muy facil de usar. Creo que deben estar al mismo nivel en cuanto a facilidad de uso.

  • JimH

    Excelente guía, se agradecen todos y cada uno de los detalles que pusiste puesto que está realmente claro, algo no muy usual!
    Saludos :)

  • Hugo Lizama

    Hola, quiero consultar por un problema que me sale al intentar ejecutar el programa, he seguido al pie las indicaciones y me sale este error:
    The type or namespace name `Quit’ does not exist in the namespace `Application’. Are you missing an assembly reference? (CS0234).

    Desconozco totalmente a que se refiere, es la primera vez que utilizo monodevelop, incluso al crear una nueva solución e intentar ejecutarla directamente sin agregar/quitar/modificar nada me da ese error.

    Tengo un Debian Squeeze, y el monodevelop(versión 2.4) lo instale desde Synaptic.

    • Anónimo

      El post es muy viejo y yo no programo en mono hace mucho tiempo asi que no puedo ayudarte