GtkDialog mappé sans un transitoire parent
J'ai une interface graphique intégrée dans la Clairière (3.18) qui est appelée par un Python 3 programme (à l'aide de PyGObject). Je reçois beaucoup de mises en garde lors de l'exécution du programme (Fedora 21) qui disent:
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Comment puis-je corriger cet avertissement? J'ai essayé de remplir le champ Transient for: main_window
dans la Clairière pour toutes les fenêtres de dialogue, mais les avertissements s'affichent toujours.
- C'est exactement l'avertissement, je me retrouve avec lors de l'exécution de cet exemple de l'officiel z gtkmm de la documentation: developer.gnome.org/gtkmm-tutorial/stable/...
Vous devez vous connecter pour publier un commentaire.
Vous corriger cet avertissement en donnant la GtkDialog parents modal. Les fonctions concernées sont
gtk_window_set_transient_for()
(ce qui définit cette fenêtre pour toujours être au-dessus de, ou transitoire pour, un autre) et éventuellementgtk_window_set_modal()
pour en faire une boîte de dialogue modale. C'est finalement ce que les différents GtkDialog constructeurs ne.main_window
instance de chaque classe de boîte de dialogue? Si j'utilise plutôtself.builder.add_objects_from_file(..."main_window")
dans la boîte de dialogue, puis-je obtenir des erreurs, car lemain_window
signaux ne sont pas connectés (ce qui est correct, parce que le dialogue a différents signaux de la fenêtre principale). La mise en Clairière peut échouer à cause des mêmes raisons. Le transitoire option est définie, mais sur l'exécution, le dialogue n'a pas accès à lamain_window
instance.set_transient_for()
lorsque vous choisissez d'afficher votre boîte de dialogue? Qu'est ce que la "mappé" signifierun()
méthode?self.dialog.set_transient_for(main_window)
(j'ai utilisé le__init__
fonction pour ça). Merci encore pour votre aide!NULL
et de traiter avec les mises en garde. Je suppose que vous pourriez essayer de prendre une nouvelle fenêtre et de ne pas le montrer, mais je ne suis pas sûr si cela va fonctionner. Ce problème est certainement l'un de gens pensent, cependant.gtk_window_set_modal(); xterm -e 'echo "hi"';
ougtk_window_set_modal(xterm -e 'echo "hi"');
?gtk_window_set_modal()
n'est pas un shell de commande; vous aurez besoin de modifier le code qui utilise GTK+.Utiliser un GtkWindow au lieu et à l'utilisation d'un GtkDialog seulement quand il y a une fenêtre parent/dialogue.