#1 Le 14/09/2016, à 14:50
- turblad
[résolu] Erreur provoquée par zenity
Très débutant en commandes shell, mais envisageant l'écriture d'un petit script, je me suis penché sur les fonctions de zenity. En un premier temps, je me suis contenté de copier litéralement l'exemple de la page du manuel gnome Ça semble fonctionner mais à chaque lancement, j'obtiens ce message :
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
J'ai par ailleurs tenté quelques fenêtres simples et à chaque fois j'ai ce satané message !
Cette erreur semble assez courante si j'en juge par le nombre élevé de messages à travers les divers forums, mais ne semble toucher que les anglophones ! Impossible de trouver une solution en français or ma maîtrise extrêmement approximative de la langue de Shakespeare ne m'aide pas. D'ailleurs, même traduit par Google (Gtk-Message: GtkDialog mappé sans parent transitoire. Ceci est découragé.) je ne comprends pas de quoi il s'agit !
Alors, au cas où un francophone aurait compris, merci d'avance
Dernière modification par turblad (Le 21/05/2019, à 01:34)
Il nous fallut bien du talent pour être vieux sans être adulte
Jacques Brel (chanson des vieux amants)
Hors ligne
#2 Le 14/09/2016, à 15:23
- tarkan99
Re : [résolu] Erreur provoquée par zenity
Salut !
je pense que le script ne sais pas où afficher la fenêtre.
si tu ajoutes
env DISPLAY=:0.0
en début de script, avant la 1° instruction zenity ?
Tu me fais découvrir zenity qui va sans doute m'être bien utile.
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#3 Le 14/09/2016, à 15:54
- littlejohn75
Re : [résolu] Erreur provoquée par zenity
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
C'est un simple avertissement émis par la bibliothèque Gtk+ utilisée par zenity pour créer et afficher des fenêtres de dialogue.
Un programme utilisant Gtk+ d'une manière correcte, devrait d'abord créer une fenêtre principale pour l'affichage des informations gérées par l'application, des éléments d'interface comme des barres de menus, des boutons, etc... Pour pour une autre raison comme afficher un message d'erreur, un panneau de paramètres, etc; on peut préférer afficher un dialogue ( GtkDialog ) qui va se mettre devant la fenêtre principale.
Le dialogue est par nature plus transitoire que la fenêtre principale, il est facile de le fermer, souvent avec des boutons 'OK' ou d'annulation.
Dans une application écrite ainsi dans les règles de l'art, la fenêtre principale est désignée comme parent des fenêtres de type dialogue (ou message), cela se fait à la création du GtkDialog (un des paramètres désigne la fenêtre principale).
Dans le cas de zenity qui est une adaptation de logiciel console comme whiptail pour fonctionner en mode graphique (sur le bureau), le développeur n'a pas créé de fenêtre principale, ce qui explique le message d'erreur ci-dessus.
Conclusion pas besoin de vous décourager
Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة
---
F. Petitjean
Ingénieur civil du Génie Maritime.
« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)
Hors ligne
#4 Le 15/09/2016, à 14:28
- turblad
Re : [résolu] Erreur provoquée par zenity
@ littlejohn75
Merci pour l'explication. Il n'en est pas moins vrai que ce comportement est désagréable et contribue à déprécier un script qui pourrait par ailleurs être parfait (ce qui n'est certes pas le cas des miens). Quitte à construire une fenêtre, j'espère que le(s) développeurs sauront dans une prochaine version y remédier .
Conclusion pas besoin de vous décourager
À plus de 68 ans, j'ai eu l'occasion de connaître plus décourageant !
Merci encore.
@ tarkan99
J'y avais pensé, et j'avais essayé « env DISPLAY=:0.0 ».
Chez moi, ça provoque bizarrement l'affichage dans le terminal de toutes les variables d'environnement toujours suivi du message GTK !
Peut-être y a-t-il d'autres options que « :0.0 » mais je ne connais pas le fonctionnement de cette variable.
Merci tout de même
Il nous fallut bien du talent pour être vieux sans être adulte
Jacques Brel (chanson des vieux amants)
Hors ligne
#5 Le 15/09/2016, à 15:41
- tarkan99
Re : [résolu] Erreur provoquée par zenity
étrangement, sous mon Xub 16.04, je n'ai pas ce message.
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#6 Le 08/12/2016, à 15:36
- ar barzh paour
Re : [résolu] Erreur provoquée par zenity
une solution qui peut cacher d'autres problèmes
lancer le shell suivi de 2>/dev/null
exemple
si exo est le nom du shell signalé en #1 (page du manuel gnome)
./exo 2>/dev/null
affichera le calendrier sans le message de GTKDialog dans le terminal
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#7 Le 08/12/2016, à 17:00
- erresse
Re : [résolu] Erreur provoquée par zenity
Bonjour,
C'est vrai que lorsqu'on lance un script utilisant zenity dans un terminal, on a ce message... qui ne fait pas très "propre", mais...
C'est le cas de beaucoup d'autres applications graphiques (apparemment, Gtk est juste un peu susceptible !) et ces messages ne tirent pas à conséquence.
Lorsqu'on construit un script qui utilise des fenêtres graphiques (via zenity), en général, c'est pour l'exécuter en mode graphique (pas dans un terminal) et donc, les messages sont toujours là mais on ne les voit pas, c'est tout !
Et comme ça fonctionne bien, on se fout éperdument que Gtk rouspète "en sourdine" !!!
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne