







|

Viele Applikationen die Sie schreiben werden auch die Möglichkeit benötigen,
Daten zu öffnen mit sogenannten Dialogboxen. Theoretisch könnten sie
ja auch die Konsole dafür verwenden. Aber dann benötigten wir keine GUI.
Im Normalfall sperren Dialogboxen, während sie eine Datei selektieren,
die aktuelle Anwendung aus der sie gestartet wurden. Man kann diesen
Modularen Modus aber auch ausschalten.
Eine Dialogbox erzeugen sie mit der Funktion:
GtkWidget *gtk_file_selection_new(const gchar *title);
title ist dabei die Überschrift der Dialogbox.
Nun benötigen wir nur noch die Funktionen zum Abfragen der Ausgewählten
Datei:
gchar *gtk_file_selection_get_filename(GtkFileSelection *select);
Natürlich gibt es auch das Gegenstück zu dieser Funktion mit:
void gtk_file_selection_set_filename(GtkFileSelection *select,
const gchar *filename);
Nun wollen wir uns ein einfaches Beispiel dazu ansehen:
/*Download:gtk_dia.c*/
#include <gtk/gtk.h>
/*Programmende*/
void ende_cb(GtkObject *object)
{
gtk_main_quit();
}
/*Ausgewählte Datei auf Konsole ausgeben*/
void get_filename(GtkWidget *widget, GtkFileSelection *sel)
{
g_print("Folgende Datei wurde ausgewählt : %s\n",
gtk_file_selection_get_filename(GTK_FILE_SELECTION(sel)));
}
int main(int argc, char **argv)
{
GtkWidget *file_select;
/*Gtk initialisieren*/
gtk_init(&argc, &argv);
file_select = gtk_file_selection_new("Auswahl");
/*Signale einrichten*/
gtk_signal_connect(GTK_OBJECT(file_select), "destroy",
(GtkSignalFunc) ende_cb, &file_select);
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(file_select)->ok_button),
"clicked", (GtkSignalFunc) get_filename, file_select);
gtk_signal_connect_object(GTK_OBJECT(GTK_FILE_SELECTION(file_select)->cancel_button),
"clicked", (GtkSignalFunc) ende_cb, GTK_OBJECT(file_select));
//gtk_file_selection_set_filename(GTK_FILE_SELECTION(file_select),"name.txt");
gtk_widget_show(file_select);
gtk_main();
return 0;
}
|
Und so könnte es aussehen:
So einfach können sie die altbewährte Dialogbox erstellen und verwenden.
Sollten sie aber eine eigene Dialogbox erstellen wollen, sollten sie sich
die Funktion gtk_dialog_new und dessen weiteren Funktionen ansehen.

© 2001,2002 Jürgen Wolf
|