Llibreries gràfiques GTK

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Segueixo

Instal.lació de les llibreries

però primer hauré d'instal.lar les llibrerires GTK (els headers, perquè les llibreries ja les tinc, doncs faig servir GNOME):

Ubuntu comes with the GTK+2 library by default, specially since it's default desktop environment is GNOME which make heavy use of GTK+2. There should be no need for you to download the GTK source. If all you need are the header files then you want the "libgtk2.0-dev" package.

i clar, s'instal.len moltes coses (58 MB):

$ sudo apt-get install libgtk2.0-dev

Primers passos

Tutorial:

simple1.c:

#include <gtk/gtk.h>

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

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(window), "Center");
  gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_widget_show(window);

  g_signal_connect_swapped(G_OBJECT(window), "destroy",
      G_CALLBACK(gtk_main_quit), NULL);

  gtk_main();

  return 0;
}
$ gcc -o simple1 simple1.c `pkg-config --libs --cflags gtk+-2.0`
$ ./simple1

Tutorial GTK+

Compte! perque el codi està deprecated com es comenta a:

Si vull un tutorial realment actualitzat el millor és la documentació oficial. Per exemple, jo que tinc la versió 2.20 de les llibreries GTK:

Per saber quina versió de les llibreries tinc instal.lada:

$ pkg-config --modversion gtk+-2.0
2.20.1

custom widget

Com a culminació del tutorial, aquí tenim un widget que és un slider i que el puc integrar amb projectes musicals i amb un controlador MIDI

Projecte GTK-JACK (slider)

A partir del codi vist anteriorment (widget slider), la idea és integrar-ho amb el codi que feia sonar una nota ('hola món audio', enviar un sinusoide a la targeta de so), de manera que movent el slider puc modificar la freqüència. El següenta pas és integrar-ho amb un controlador midi (Axiom 25), per tal de què el slider software respongui a alguna rodeta de l'Axiom o al control del pitch.

Projecte GTK-JACK (knob)

El mateix que l'anterior, però ara necessito un widget que sigui un knob. Finalment he trobat un codi d'exemple de knob que suposo que es pot integrar:

Després de tocar bastantes coses he fet funcionar i compilar el knob.c que està dins de demo/

Què és phat?

PHAT is a collection of GTK+ widgets geared toward pro-audio apps. The goal is to eliminate duplication of effort and provide some standardization (well, at least for GTK+ apps). It's open source software, licensed under the GNU GPL, version 2.0 or later.

I'm keen to hear any thoughts or feature requests, if you are making custom widgets and want to them included in phat tell me! If it's a useful widget for audio it should be in phat.

$ svn checkout svn://svn.berlios.de/phat/trunk
Imatge on es pot veure els widgets que inclout phat: http://developer.berlios.de/dbimage.php?id=2738 (inclou el rotary knob):
Khagan main.png

Khagan: http://khagan.berlios.de/

Khagan is a live user interface builder for controling parameters via OSC. It's mainly aimed at the Om modular synthesizer.

Exemples Harry Haaren

Harry Haaren és el desenvolupador de Lupp, que utilitza GTK+, i en el seu bloc ha posat alguns exemples de com es programen Widgets amb GTK+.


creat per Joan Quintana Compte, novembre 2010

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines