A, buenisimo entonces .. acortaste un monton de caminos ...
En Linux y en Unix (BSD) en particular se trabaja en C ... TODO es C ...
Qt es un "toolkit" para crear aplicaciones graficas con C++ y Qtlibs ( la libreria ).
En base a eso esta hecho KDE
Gnome esta hecho en C usando una libreria que se llama GTK2 .. (la documentación de la api la encontras en la pagina de gtk)
Libro sobre QT:
http://www.amazon.com/C%2B%2B-GUI-Pr...3396933&sr=8-1
Ese es EL libro sobre Qt .. es más, yo lo tengo y si queres te lo vendo =P
Otro que va un poco mas allá de Qt:
http://www.amazon.com/Open-Source-Ga...397033&sr=8-10
Ese tambien lo tengo y tambien te lo vendo si queres ...
Ese es MUCHO mas completo ya ... y esta MUCHO mas dirigido a lo que vos buscas ... que es desarrollar soft libre ... Mira el indice y fijate que cubre TODO ( de autotools a Kde y OpenGL/OpenAL).
Fundamental: aprender a usar sistemas de revision de control ( svn y git para linux CVS para BSD y Unix).
Mira por ejemplo ... yo empaquetaba, testeaba, reportaba bugs, etc , etc, etc para este programa
http://kima.sourceforge.net/
Asi que controlaba los cambios diariamente con svn:
http://kima.sourceforge.net/#development
me bajaba el source:
svn checkout
https://kima.svn.sourceforge.net/svnroot/kima/trunk/ kima
y desues todos los dias me fijaba a ver si habia alguna modificacion:
Sobre C y C++ tenes libros a patadas ...
Recomendanle ( para mi y si te interesa saber C en UNIX/Linux):
http://www.cuspide.com/isbn/9701510496
Es un LIBRAZO ...
En suma .. C o C++, autotools, svn y cvs, ...
Este es el mejor libro que lei sobre svn:
http://www.amazon.com/Pragmatic-Vers...3397439&sr=8-3
Este es el libro oficial:
http://svnbook.red-bean.com/
En cuanto a python .. no hay mucho secreto .. casi cualquier libro es bueno .. pero depende mucho de que tan parado estas sobre el tema de la programación y de la poo en general ... Muchos MUY aburridos ... a veces es mejor leer la doc oficial y empezar a jugar con eso
Por lo demas .. vas viendo ...
Pregunta y listo.
pd: Bue .. mira .. me entusiasmaste ahora ..
Te paso de ejemplo un programa que viene en el cd del libro de Qt en el capitulo 1 y te comento el codigo:
Código:
#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>
int main(int argc, char *argv[])
{
/*instanciamos una objeto en el stack y lo llamamos "app"*/
QApplication app(argc, argv);
/* Aca creamos un puntero a un objeto QWidget ( un qwidget es cualquier caja grafica o cualquier objeto grafico o "ventanita" ) que va a residir en el heap. El puntero se va a llamar "window"/*
QWidget *window = new QWidget;
/*aca usamos una funcion del objeto QWidget para asignarle el titulo a la caja*/
window->setWindowTitle("Enter Your Age");
/* hacemos lo mismo con un spinbox y un slider*/
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
/* usamos funciones de los objetos para setear los rangos del spinbox y del slider*/
spinBox->setRange(0, 130);
slider->setRange(0, 130);
/*conectamos al spinbox y al slider para si se mueve uno, se mueva el otro automaticamente asi el user puede usar cualquiera de los dos para setear la edad*/
QObject::connect(spinBox, SIGNAL(valueChanged(int)),
slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)),
spinBox, SLOT(setValue(int)));
/*asignamos un valor por defecto*/
spinBox->setValue(35);
/* Creamos un puntero a un nuevo objeto QHBoxLayout que es lo que crea el espacio donde vamos a organizar nuestros widgets (el spinbox y el slider) */
QHBoxLayout *layout = new QHBoxLayout;
/*usamos metodos del objeto QHBoxLayout para organizar la posicion del spinner y del slider dentro del objeto QHBoxLayout que creamos dentro de nuestro QWidget ( ventana) */
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
/*dibujamos la ventana en el background para no se vea ningun flicker si es que hay*/
window->show();
/*mostramos la ventana ya dibujada =) */
return app.exec();
}
vamos a ver que clases usamos y su documentacion ... asi podes ver como es la api:
QApplication
http://doc.trolltech.com/4.0/qapplication.html
QWidget ( fijate para que sirven y como funcionan los metodos setWindowTitle y setLayout que usamos )
http://doc.trolltech.com/4.0/qwidget.html
QHBoxLayout ( addWidget )
http://doc.trolltech.com/4.0/qhboxlayout.html
QSlider ( setRange, setValue )
http://doc.trolltech.com/4.0/qslider.html
QSpinBox ( setRange, setValue )
http://doc.trolltech.com/4.0/qspinbox.html
QObject ( connect )
http://doc.trolltech.com/4.0/qobject.html
tada !
como compilarlo te lo dejo a vos
saludos!