2010-08-06 9 views
0

Le projet wxWidgets utilise GTK sous Linux, et mon application basée sur wxPython avec des composants basiques fait beaucoup d'avertissements et d'erreurs pour lesquels je n'ai pas grand chose à faire en tant que codeur/utilisateur python.Comment supprimer les avertissements Gtk d'une application wxWidgets/wxPython?

Les erreurs distraient mes flux standards et ne sont pas fatales à mon programme. Les habituelles dans mon cas sont:

(python2.6:9886): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -4 and height 13 
(python2.6:9886): Gtk-CRITICAL **: gtk_widget_is_ancestor: assertion `ancestor != NULL' failed 

est-il si mauvais une pratique de supprimer ce genre d'erreurs tiers de ma part? Et comment cela est-il fait?

Répondre

0

Juste rediriger stderr ailleurs.

import sys 
sys.stderr = open("some path") 

Ou vous pouvez rediriger vers une classe avec une méthode Write qui ne fait rien.

+0

Cela ne fonctionne pas. J'ai essayé de rediriger avant 'wx.App' et j'ai essayé de rediriger le' __init__ 'de mon' wx.Frame' en vain. – progo

+0

Hmmm ... doit être redirigé dans la partie C++ de wx, pas dans la partie Python. Essayez de placer une ligne dans la liste de diffusion officielle wxPython. Ils auront des idées. –

0

Cela ne vient pas de wxPython - c'est à partir de GTK lui-même. Vous pouvez corriger le premier en veillant à ce que des valeurs positives (ou -1 pour "any") soient utilisées pour les valeurs de taille lors de la création de Controls.

Je ne suis pas trop sûr sur le second - pouvez-vous identifier quel widget/événement le déclenche? J'avais une erreur à propos de l'impression et cela était dû au fait que CUPS n'était pas configuré correctement.

+0

La deuxième erreur spams deux fois chaque fois que je change d'onglet dans wx.notebook. Mais il y a aussi d'autres cas. J'apprécie votre connaissance des fonctionnements de GTK mais je ne suis pas sûr si je veux continuer à plaire les dieux de GTK au lieu de se concentrer sur le python – progo

+0

Eh bien le fait que vous créez un contrôle avec une largeur de -4 montre que vous êtes faire * quelque chose * de mal;). Ah ... cahiers - êtes-vous sûr que les enfants de votre cahier ont leurs parents réglés correctement? Vous ne pouvez pas les supprimer - par exemple, ouvrir Nautilus depuis la ligne de commande affiche souvent des avertissements GTK - mais ils ne sont pas générés par le programme, par exemple. –

Questions connexes