Diferencia entre revisiones de «Mono»

De Guía Ubuntu
Saltar a: navegación, buscar
(completando)
(Poner un Label en negrita)
 
(No se muestran 10 ediciones intermedias realizadas por 2 usuarios)
Línea 1: Línea 1:
 
Mono es una implementación libre del lenguaje C# (se lee C-Sharp).
 
Mono es una implementación libre del lenguaje C# (se lee C-Sharp).
 +
 +
= Tree View =
 +
Se trata de una clase que nos sirve tanto para presentar listas (tablas) como árboles. Tienes un tutorial en [http://www.mono-project.com/GtkSharp_TreeView_Tutorial GtkSharp TreeView Tutorial].
 +
 +
== Señales ==
 +
* '''CursorChanged''': Se dispara cuando se selecciona una fila.
 +
* '''RowActivated''': Se dispara cuando se hace doble click en una fila.
 +
 +
Así para leer los valores de una fila en la que se ha hecho un doble click sería:
 +
 +
<csharp>
 +
Gtk.TreeView tree;
 +
 +
protected virtual void OnRowActivated(object o, Gtk.RowActivatedArgs args) {
 +
    TreeModel model;
 +
    TreeIter iterSelected;
 +
       
 +
    if (tree.Selection.GetSelected(out model, out iterSelected)) {
 +
        Console.WriteLine("Valor: "+model.GetValue(iterSelected, 1));
 +
    }
 +
}
 +
</csharp>
 +
 +
== Guardar un objeto interno ==
 +
Tanto si usamos un ''TreeStore'' como un ''ListStore'' podemos usar una columna invisible para almacenar un objeto:
 +
 +
<csharp>
 +
TreeStore treeStore = new TreeStore(typeof(string) , typeof(MiObjecto));
 +
</csharp>
 +
 +
= Miscelánea =
 +
Cosas varias.
  
 
== Escribir en la consola ==
 
== Escribir en la consola ==
Línea 9: Línea 41:
  
 
== Cambiar el puntero del ratón ==
 
== Cambiar el puntero del ratón ==
Nuestro programa puede realizar alguna operación que tarde unos instantes, con lo que tendríamos que hacerle saber al usuario que está trabajando y no se ha colgado. Para eso lo suyo es poner es cambiar el puntero del ratón al principio del proceso:
+
Nuestro programa puede realizar alguna operación que tarde unos instantes, con lo que tendríamos que hacerle saber al usuario que está trabajando y no se ha colgado. Para eso lo suyo es cambiar el puntero del ratón al principio del proceso:
  
 
<csharp>
 
<csharp>
Línea 23: Línea 55:
 
</csharp>
 
</csharp>
  
== Tree View ==
+
== Poner un Label en negrita ==
=== Señales ===
+
Puedes activar la propiedad ''Markup'' y usar los [http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html Markups de Pango]. Para más info ver:  
* '''CursorChanged''': Se dispara cuando se selecciona una fila.
+
* '''RowActivated''': Se dispara cuando se hace doble click en una fila.
+
 
+
== Guardar un objeto interno==
+
Tanto si usamos un ''TreeStore'' como un ''ListStore'' podemos usar una columna invisible para almacenar un objeto:
+
  
 
<csharp>
 
<csharp>
TreeStore treeStore = new TreeStore(typeof(string) , typeof(MiObjecto));
+
Label lbl = new Label();
 +
lbl.Markup = true;
 +
lbl.Text = "<b>Esto esta en negrita</b>";
 
</csharp>
 
</csharp>
 +
 +
= Enlaces externos =
 +
* [http://www.mono-project.com/ Mono Project]
 +
* [http://www.mono-project.com/GtkSharp GtkSharp]
 +
* [http://www.monohispano.es MonoHispano]
 +
* [http://en.csharp-online.net/ C# Online.NET]
 +
* [http://www.appomattox-project.org/Tutorial_-_Introduction_to_the_Gui_Components Tutorial - Introduction to the Gui Components]
  
 
[[Categoría: Lenguajes]]
 
[[Categoría: Lenguajes]]

Última revisión de 20:37 21 jun 2007

Mono es una implementación libre del lenguaje C# (se lee C-Sharp).

Tree View

Se trata de una clase que nos sirve tanto para presentar listas (tablas) como árboles. Tienes un tutorial en GtkSharp TreeView Tutorial.

Señales

  • CursorChanged: Se dispara cuando se selecciona una fila.
  • RowActivated: Se dispara cuando se hace doble click en una fila.

Así para leer los valores de una fila en la que se ha hecho un doble click sería:

<csharp> Gtk.TreeView tree;

protected virtual void OnRowActivated(object o, Gtk.RowActivatedArgs args) {

   TreeModel model;
   TreeIter iterSelected;
       
   if (tree.Selection.GetSelected(out model, out iterSelected)) {
       Console.WriteLine("Valor: "+model.GetValue(iterSelected, 1));
   }

} </csharp>

Guardar un objeto interno

Tanto si usamos un TreeStore como un ListStore podemos usar una columna invisible para almacenar un objeto:

<csharp> TreeStore treeStore = new TreeStore(typeof(string) , typeof(MiObjecto)); </csharp>

Miscelánea

Cosas varias.

Escribir en la consola

Es de lo primero que tenemos que saber de un lenguaje:

<csharp> Console.WriteLine("Hola, mundo!"); </csharp>

Cambiar el puntero del ratón

Nuestro programa puede realizar alguna operación que tarde unos instantes, con lo que tendríamos que hacerle saber al usuario que está trabajando y no se ha colgado. Para eso lo suyo es cambiar el puntero del ratón al principio del proceso:

<csharp> this.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch); this.GdkWindow.Display.Sync(); </csharp>

Y luego volver a dejarlo como estaba:

<csharp> this.GdkWindow.Cursor = null; this.GdkWindow.Display.Sync(); </csharp>

Poner un Label en negrita

Puedes activar la propiedad Markup y usar los Markups de Pango. Para más info ver:

<csharp> Label lbl = new Label(); lbl.Markup = true; lbl.Text = "Esto esta en negrita"; </csharp>

Enlaces externos