mettre la clairière de l'interface en python
J'ai fait une interface graphique dans la clairière que je veux mettre dans un programme en python. J'ai été d'adapter les instructions à partir d'un tutoriel que j'ai trouvé en ligne à charger dans mon fichier glade (http://www.pygtk.org/articles/pygtk-glade-gui/Creating_a_GUI_using_PyGTK_and_Glade.htm). Quand j'avais des problèmes, j'ai essayé quelque chose de simple (un bouton), l'appel d'elle la même chose que dans le tutoriel, et le copier-coller de leur code, et il ne fonctionne toujours pas. J'ai aussi pris un coup d'oeil (http://www.linuxjournal.com/article/6586?page=0,2), qui a une fonction appelée de façon légèrement différente ("self.wTree=gtk.glade.XML (gladefile,nomfenêtre)" au lieu de sans nomfenêtre), et mis en œuvre un équivalent avec le mien et qui n'ont pas le fixer. J'ai définitivement pygtk de travail, j'ai fait quelque chose sans l'aide de clairière, et il a bien fonctionné. L'erreur que j'obtiens est:
/usr/share/themes/NOX/gtk-2.0/gtkrc:233: Murrine configuration option "gradients"
is no longer supported and will be ignored.
(helloWorld.py:9804): libglade-WARNING **: Expected <glade-interface>. Got
<interface>.
(helloWorld.py:9804): libglade-WARNING **: did not finish in PARSER_FINISH state
Traceback (most recent call last):
File "helloWorld.py", line 31, in <module>
hwg = HellowWorldGTK()
File "helloWorld.py", line 22, in __init__
self.wTree = gtk.glade.XML(self.gladefile)
RuntimeError: could not create GladeXML object
Je suis sous xubuntu 11.04. Le Murrine configuration chose arrive lorsque toute application gtk s'ouvre, mais je l'ai inclus dans les cas où il est pertinent. Voici le code que j'ai pris du tutoriel (mais ne fonctionne pas)
#!/usr/bin/env python
import sys
try:
import pygtk
pygtk.require("2.0")
except:
pass
try:
import gtk
import gtk.glade
except:
sys.exit(1)
class HellowWorldGTK:
"""This is an Hello World GTK application"""
def __init__(self):
#Set the Glade file
self.gladefile = "PyHelloWorld.glade"
self.wTree = gtk.glade.XML(self.gladefile)
#Get the Main Window, and connect the "destroy" event
self.window = self.wTree.get_widget("MainWindow")
self.window.show()
if (self.window):
self.window.connect("destroy", gtk.main_quit)
if __name__ == "__main__":
hwg = HellowWorldGTK()
gtk.main()
- Ceci répond à ta question: stackoverflow.com/questions/2668618/...
- Merci à vous :). Il fonctionne maintenant.
- Jetez un oeil à ce lien techaffairs.com.br/... dans ce post, vous serez en mesure d'obtenir le code d'exemple, ce post est en portugais.
Vous devez vous connecter pour publier un commentaire.
Essayer avec ce code:
Rappelez-vous:
Dans la Clairière, Modifier les "Préférences" du fichier "GTKBuilder" (pas de "libglade")
Votre PyHelloWorld.la clairière est incorrect. Assurez-vous que vous avez créé avec la bonne Clairière de l'application, il y a Glade2 et Glade3 applications qui peuvent être installées et utilisées. Si vous avez téléchargé le fichier, assurez-vous qu'il est correct. Le message d'erreur dit tout:
Si le fichier XML a l'interface de la balise, mais PyGTK bibliothèque s'attend à la clairière de l'interface de l'étiquette.
Depuis que je finis toujours par avoir des problèmes avec cela, voici un Python 2.7 code que j'utilise pour l'un ou l'autre:
pour
Libglade
:Pour
GtkBuilder
:Dans la Clairière, vous pouvez simplement ajouter une Fenêtre, appeler
MainWindow
, et enregistrer deux versions avec les noms de fichiers comme ci-dessus pour chaque format; et ces extraits doivent travailler avec eux respeactively.Espère que cela aide quelqu'un,
Cheers!
Cela fonctionne parfaitement.
Si vous êtes à l'aide de GTK+3 en python, voir constructeur.