GTK dialog mimo gtk_main()
Ladislav Vaiz
spam na nagano.cz
Středa Září 21 21:02:54 CEST 2011
Ahoj,
chtěl bych v aplikaci, která jinak nemá s GTK nic společného, použít GTK
File Chooser. Idea je spustit jej v samostatném vláknu, aby nezdržoval
hlavní smyčku. Problém je v tom, že volání gtk_dialog_run() se sice
správně ukončí, ale dialog zůstane zobrazený i po volání
gtk_widget_destroy(). Zmizí až po ukončení procesu. Princip ukazuje
příklad na konci mailu.
Dá se nějak vynutit uzavření okna? Lze vůbec používat dialogy mimo
gtk_main()?
Případně existuje nějaká jiná knihovna použítelná pro tento účel, které
se dá volat z C a bývá u uživatelů běžně nainstalována?
Díky Láďa
// gcc gtk.c -o gtk `pkg-config --cflags --libs gtk+-2.0` && ./gtk
#include <gtk/gtk.h>
int main(int argc, char *argv[]){
GtkWidget *dialog;
gtk_init(&argc, &argv);
dialog = gtk_file_chooser_dialog_new("Otevrit", NULL,
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT){
printf("accept\n");
char *fff = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER
(dialog));
}else{
printf("asi ne\n");
}
gtk_widget_destroy(dialog);
sleep(3);
}
Další informace o konferenci Linux