Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Gtk - Einführung

von MitgliedStueberSeite 1 von 1

Dieses Tutorial ist für Anfänger gedacht, die gerne von der Konsole auf echte Oberflächen umsteigen möchten. Du solltest dich schon mit Variablen, Abfragen, Schleifen und Subs auskennen und zumindest wissen was Zeiger sind.

Was ist Gtk?

Gtk steht für Gimp Tool Kit. Externer Link!Gtk wurde ursprünglich für das Grafikprogramm Externer Link!Gimp geschrieben, wird heute aber von vielen Programmen verwendet.
Mit Gtk kann mit wenig Aufwand eine GUI (Graphical User Interface) erstellt werden.

Warum sollte ich Gtk benutzen?

Gtk bringt eine Menge Vorteile im Vergleich zu anderen Möglichkeiten, eine Oberfläche zu gestalten. Das Management von Signalen wird einem abgenommen (mehr dazu später) und die Programme bleiben plattformunabhängig. Das bedeutet in diesem Fall, dass die Programme auch auf Linux verwendbar sind.

Wie geht es los?

Die nötigen Header sind bereits bei FreeBASIC dabei, aber um die Programme testen zu können, musst du dir das Gtk SDK herunterladen (Externer Link!Download, weitere Informationen Externer Link!hier).
Die darin enthaltenen .dll's müssen in den Ordner deines Programms gelegt werden.
Jetzt musst du nur eine neue Datei in deiner IDE anlegen (Empfehlung: FBIde, kann hier im Download-Bereich bezogen werden).

Erste Schritte mit Gtk

Um Gtk verwenden zu können musst du nur folgende Zeile ganz oben in deinem Quelltext verwenden:

#include once "gtk/gtk.bi"

Damit werden alle Gtk Funktionen und Subs deinem Programm bekannt gemacht.
Der nächste Schritt ist das Initialisieren (Starten) von Gtk. Dazu muss folgende Zeile aufgerufen werden:

gtk_init (0, 0)

Damit wird Gtk bereit zur Verwendung gemacht.
Die letzte Zeile nach allem Gtk-Code, der jetzt noch folgt muss die folgende sein:

gtk_main()

Dieses Sub wartet auf Eingaben des Benutzers und informiert dein Programm dann darüber (mehr dazu später).

Ein einfaches Fenster

In Gtk werden alle Steuerelemente wie Fenster, Buttons, Checkboxen über einen eigenen Datentyp verwendet. Wenn du eine Variable für ein Fenster haben möchtest, sieht das dann so aus:

dim as GtkWidget ptr win

Das Deklarieren funktioniert genauso wie beispielsweise bei einem BefehlsreferenzeintragInteger, nur eben mit dem Datentyp GtkWidget ptr.
Nur durch das Erstellen bekommen wir aber noch lange kein Fenster auf den Bildschirm; dafür werden noch zwei weitere Zeilen benötigt.
Das Fenster muss erst erstellt werden. Das geht so:

win = gtk_window_new (GTK_WINDOW_TOPLEVEL)

Die Funktion gtk_window_new erzeugt ein neues Fenster und die Konstante, die übergeben wird, muss dich jetzt noch nicht interessieren.

GTK-Fenster
Vergrößern
GTK-Fenster

Jetzt hast du ein Fenster erstellt, aber wenn du dein Programm kompilierst, wirst du noch nichts sehen. Das Fenster muss erst noch gezeigt werden, was wie folgt funktioniert:

gtk_widget_show (win)

So wird das Fenster sichtbar gemacht.

Wenn du alles richtig gemacht hast, wirst du jetzt ein leeres Fenster sehen (siehe Abbildung rechts).

Gesamter Quelltext

#include once "gtk/gtk.bi"
gtk_init (0, 0)

dim as GtkWidget ptr win = gtk_window_new (GTK_WINDOW_TOPLEVEL)

gtk_widget_show (win)

gtk_main()

Probleme

Problem: Das Kompilieren schlägt fehl.
Lösung: Installiere die neueste Version von FreeBASIC.

Problem: Das Programm kompiliert zwar, aber ich kann es nicht starten.
Lösung: Im Gtk SDK befinden sich im Unterordner "bin\" viele .dll Dateien. Diese müssen in den Ordner deines Programms kopiert werden.

Fortsetzung

Es ist bereits ein zweites GTK-Tutorial online, das auf diesem Einstiegs-How-To aufbaut. Es befasst sich mit Buttons und Boxen.

 

Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 05.02.2010 von MitgliedStueber angelegt.
  • Die aktuellste Version wurde am 10.07.2012 von RedakteurSt_W gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen