Plusieurs questions et affichage d'un pop up
Bonjour à tous,
J'essaye désespérément depuis un petit moment d'afficher une boite de dialogue qui ne nécessiterait pas de validation de la part de l'utilisateur, mais qui serait détruite quelques secondes plus tard.
J'ai crée une boite de dialogue avec "GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR, 0" comme paramètres.
Code:
1 2 3 4 5 6 7 8 9 10 11
| gint result =gtk_dialog_run (GTK_DIALOG (dialog));
switch (result)
{
case GTK_RESPONSE_:
g_timeout_add(1000, (GSourceFunc)gtk_widget_destroy, dialog);
break;
default:
gtk_widget_destroy (dialog);
break;
} |
Ce code ne fonctionne pas, j'ai beau attendre je suis obligé de cliquer sur la croix en haut à droite :( .
Une fonction callback doit elle être obligatoirement de la forme :
void nom_de_la_fonction(GtkWidget *widget, gpointer data) ?
Peut elle être de cette forme :
void nom_de_la_fonction(void) ?
ou void nom_de_la_fonction(GtkWidget *widget, gpointer data, int jesaispas) ?
Pour quitter mon application puis je utiliser la fonction gtk_main_quit() ? Est ce une fonction callback ? Ou bien faut il coder une fonction sois même ?
Merci de me répondre.
Utiliser un tournevis pour enfoncer un clou...
Une boite de dialogue est faite par design pour demander une intervention de l'utilisateur. Un message sans intervention, c'est une notification, et ce n'est pas une boite de dialogue. Sous Linux, tu devras utiliser libnotify pour cela, qui te donne des choses de ce genre là:
http://linux.softpedia.com/screensho...ibnotify_1.jpg
Et ton exemple ne fonctionne pas parce que gtk_dialog_run est volontairement bloquant, tu n'en sors que si l'utilisateur a cliqué sur un bouton. Et quand tu veux un timeout en secondes, utilise g_timeout_add_seconds, ça évite de réveiller le processeur pour rien...