2010-05-15 4 views
0
  1. J'ai un gtklabel NULL. Lors de l'occurrence d'un événement, je mets un texte dans cette étiquette (avec gtk_label_set_text). Comment puis-je réinitialiser le gtklabel après l'événement (réinitialiser à NULL)?
  2. Comment puis-je définir la longueur maximale (caractères) d'un GtkTextView?
  3. Quelle est la manière la plus simple de définir la distance à partir de la marge d'un widget dans un GtkTable?

Répondre

0
  1. Si je comprends bien à partir du code, vous pouvez simplement utiliser gtk_label_set_text (label, NULL). Si cela échoue pour une raison quelconque (par exemple, la version précédente n'autorise pas NULL), remplacez-la par "".
  2. Vous ne pouvez pas, directement. L'approche non directe la plus simple consisterait à se connecter à "insert-text" sur les vues GtkTextBuffer et g_signal_stop_emission_by_name() de la vue lorsque vous ne souhaitez pas que l'insertion se produise réellement. Je n'ai jamais fait ça, donc c'est juste ce que j'essayerais, aucune garantie que ça marchera vraiment.
  3. Je ne sais pas trop ce que vous voulez dire. Vous pouvez essayer d'utiliser un GtkAlignment autour de votre widget et définir le remplissage - peut ou peut ne pas être ce que vous voulez.
+0

1. J'ai déjà essayé mais je ne travaillais pas. J'ai un mylabel = gtk_label_new (NULL), lors de l'apparition d'un événement, le gtklabel affiche un texte (passé par gtk_label_set_text (GTK_LABEL (mylabel), "texte")). Par exemple, j'écris un sleep (5) et un nouveau gtk_label_set_text (GTK_LABEL (mylabel), NULL), mais le résultat est que l'occurrence de l'événement, j'ai seulement une étiquette NULL après cinq secondes. 2-3. J'essaierai. – stdio

+0

@stdio: "Je n'ai qu'une étiquette NULL après cinq secondes" - cela ressemble à des problèmes de filetage * ou * au manque de threads requis. La mise à jour de l'affichage ne se produit que dans une boucle séparée, donc si vous bloquez le thread principal pendant 5 secondes après la mise à jour d'une étiquette, vous le verrez * mis à jour uniquement lorsque la boucle principale fera une nouvelle itération. – doublep

+0

1. J'ai utilisé le signal d'événement button-press-event et le bouton-release-event pour commuter les étiquettes null et text. 2-3. J'ai suivi votre suggestion et tout va bien. Merci! – stdio

Questions connexes