Desarrollo aplicaciones GNOME

Merkury

Buenos dias MVideros!

Pues vengo con una duda que me gustaria ver si podeis resolverme.

Ultimamente ando muy metido en el tema de linux y tras varios meses me he decidido el lanzarme a desarrollar una pequeña aplicacion de escritorio, pero aqui viene mi gran problema ¡No se que utilizar para ello!. El tema es que yo he programado exclusivamente en windows y normalmente uso el visual studio, y la pregunta es ¿hay algo similar para la programacion en GNOME?

Un Saludo!

B

Hace mil quinientos años usaba glade. Luego me pasé a las qt.

Merkury

¿QT? Que es exactamente? Glade encontre lo que era pero lo vi un poco desfasado la verdad...

B

Me refiero a que me pasé a las librerias qt que son menos engorrosas para programar.

Merkury

ahh ok ok

Una pregunta #2 con las QT, no me serviria el programar algo que quiera ejecutar en GNOME no?

B

Mientras tengas instaladas las librerias qt puedes ejecutarlo en gnome o en el que sea.

QT

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

QPushButton hello( "Hello world!", 0 );
hello.resize( 100, 30 );

a.setMainWidget( &hello );
hello.show();
return a.exec();
}

GNOME

#include <gtk/gtk.h>

static gint delete_event_cb(GtkWidget* w, GdkEventAny* e, gpointer data);
static void button_click_cb(GtkWidget* w, gpointer data);

int 
main(int argc, char* argv[])
{
  GtkWidget* window;
  GtkWidget* button;
  GtkWidget* label;

  gtk_init(&argc, &argv);  

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

  button = gtk_button_new();

  label  = gtk_label_new("Hello, World!");

  gtk_container_add(GTK_CONTAINER(button), label);
  gtk_container_add(GTK_CONTAINER(window), button);

  gtk_window_set_title(GTK_WINDOW(window), "Hello");
  gtk_container_set_border_width(GTK_CONTAINER(button), 10);
  
gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event_cb), NULL); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(button_click_cb), label); gtk_widget_show_all(window); gtk_main(); return 0; } static gint delete_event_cb(GtkWidget* window, GdkEventAny* e, gpointer data) { gtk_main_quit(); return FALSE; } static void button_click_cb(GtkWidget* w, gpointer data) { GtkWidget* label; gchar* text; gchar* tmp; label = GTK_WIDGET(data); gtk_label_get(GTK_LABEL(label), &text); tmp = g_strdup(text); g_strreverse(tmp); gtk_label_set_text(GTK_LABEL(label), tmp); g_free(tmp); }
Merkury

Dios me acabas de hacer un favor que no te llegas ni a imaginar!

Muchas gracias ^^

erdanblo

El QTDesigner (que se instala siempre al meter las librerias de QT), tiene una pinta terriblemente sencillo de desarrollar algo, digamos que haces todo lo visual y ya luego bindeas al programa que hagas debajo (y creo que puedes programar en C, C+, python, etc..., lo que quieras, solo tienes que buscar el "bind").

Al menos es lo que yo tengo entendido :P, nunca he llegado a hacer nada. (yo lo que he hecho, ha sido o con netbeans o visual studio, y la verdad es que son entornos muy cómodos, visual studio sobre todo).

Si controlas C# puedes echarle un vistazo Mono Develop (es lo mismo que C# :P)

Merkury

#8 Hombre controlar (si te refieres a que se programar en C#, si) controlar, controlo... no soy un master pero bueno, busco la manera de hacer aplicaciones de escritorio para GNOME el qt parece sencillo aunq bueno lo estoy ojeando a ver si me vale para lo que tengo en mente XD

La cosa es que quiero hacer mis programas totalmente libres, sin tener que usar un studio que requiera una licencia. Y hasta ahora no hbia encontrado nada mas o menos util.

Tambien me voy a mirar el Mono Develop.

NinjaEdit --> El MonoDevelop tambien se puede usar con VB.NET C00l XD

erdanblo

Si, vamos controlar, que sabes hacer un hello world y cuatro cosas mas (xD, yo mucho más no se), lo que te quiero decir, que la sintaxis es exactamente igual que C# (Mono en realidad es una máquina virtual, no me acuerdo el nombre del concepto exacto :P, ¿JIT?) y me parece que tiene algún módulo para diseñar también la interface (no estoy seguro, pero creo que se lo he visto).

Seria lo mas parecido a Visual Studio y claro, es libre y gratuito (mono).

Merkury

#10 Se algo mas que el hello world (soy programador, en entornos windows por desgracia :( aunque trabajo en redes XD) pues el modulo de la interfaz no lo encuentro y la verdad que es una d las cosas que necesito XD

erdanblo

Vaya, pero espero que no te tomases mi comentario mal. Lo decia en el sentido, que con mono no te tienes que adaptar, que la sintaxis es igual.

Merkury

#12 No tranquilo jeje la verdad que entre tu y #1 me habeis ayudado un huevo ^^

Muchas gracias!!

m0rG

Yo también te recomendaría QT,la verdad. Aparte de ser muy utilizado para Linux, es una librería que tiene de todo, no sólo sirve para desarrollar GUIs. Como ya han comentado,además con QT Designer te puedes quitar una de las partes más engorrosas (al menos en mi opinión) que es diseñar formularios,widgets y demás...

Luego cosillas como el mecanismo signal/slot hacen que programar ciertas cosas sea muy cómodo (sin entrar en si es más o menos eficiente que otras soluciones parecidas) y en general yo creo que las aplicaciones gráficas quedan de lujo con QT (facilita además el tema de la internacionalización,look & feel del sistema operativo,scripts en otros lenguajes y cosas así).

PD- Si quieres un buen libro sobre programación en C++ con QT mírate esto: http://www.taringa.net/posts/ebooks-tutoriales/2440165/Manual-oficial-de-QT4-y-C++.html

Namaris

Estupida pregunta pero...:

Alguien sabe si el Mono se puede usar en Windows 7 ?

erdanblo

Respuesta obvia...:

http://mono-project.com

Namaris

#16 xD, ni me moleste en abrir la web oficial

Eske siempre uso el Visual Studio pero como me voy a hacer con un netbook prefiero algo ligero ya que le pondre el Win 7

Gracias

Usuarios habituales