Seite 1 von 1

GTK-Window erscheint nicht.

Verfasst: Samstag 26. März 2011, 11:04
von julianibus
Hallo,
ich habe beschlossen mich in pygtk einzuarbeiten, dabei will ich auch von dem Glade-Designer gebrauch machen.
Dafür hab ich dieses Tutorial gemacht: http://www.pygtk.org/articles//pygtk-gl ... _Glade.htm

Wenn ich das ausführe bleibt das Programm ohne Fehler am Laufen, es erscheint aber kein Fenster.

Das Programm:

Code: Alles auswählen

#!/usr/bin/env python

import sys
import pygtk
import gtk
import gtk.glade
class HellowWorldGTK:
	"""This is an Hello World GTK application"""

	def __init__(self):
		#Set the Glade file
		self.gladefile = "pyhelloworld2.glade"
		self.wTree = gtk.glade.XML(self.gladefile) 
		
		#Create our dictionay and connect it
		dic = { "on_btnHelloWorld_clicked" : self.btnHelloWorld_clicked}
		self.wTree.signal_autoconnect(dic)
	def btnHelloWorld_clicked(self, widget):
		print "hallo"

if __name__ == "__main__":
	hwg = HellowWorldGTK()
	gtk.main()

Die dazugehörige Glade-file pyhelloworld2.glade:

Code: Alles auswählen

<?xml version="1.0"?>
<interface>
  <requires lib="gtk+" version="2.16"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="MainWindow">
    <property name="title" translatable="yes">Hello World!</property>
    <child>
      <object class="GtkVBox" id="vbox1">
        <property name="visible">True</property>
        <child>
          <object class="GtkLabel" id="label1">
            <property name="visible">True</property>
            <property name="label" translatable="yes">label</property>
          </object>
          <packing>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkButton" id="btnHelloWorld">
            <property name="label" translatable="yes">Click me!</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </object>
          <packing>
            <property name="position">1</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>
Ich weiß einfach nicht, was ich falsch gemacht habe.
Danke für eure Hilfe!
Mein OS: Ubuntu 10.04
julianibus

Re: GTK-Window erscheint nicht.

Verfasst: Samstag 26. März 2011, 12:35
von Leonidas
Du musst noch auf dem ``gtk.Window``-Objekt ``show_all()`` aufrufen, damit die Widgets überhaupt erst sichtbar sind.

Re: GTK-Window erscheint nicht.

Verfasst: Sonntag 27. März 2011, 10:40
von julianibus
Was müsste ich dafür bei meinem Code abändern bzw was davon ist das gtk.Window Objekt?

Re: GTK-Window erscheint nicht.

Verfasst: Sonntag 27. März 2011, 11:37
von Leonidas
Naja, das Window-Objekt musst du aus deinem ``self.wTree`` (übrigens: ein schlechter Name) rausziehen, das geht mit ``self.wTree.get_widget("id-deines-window")``.

Re: GTK-Window erscheint nicht.

Verfasst: Montag 28. März 2011, 17:16
von ms4py
Deine Tutorial scheint außerdem reichlich alt, das folgende ist ziemlich aktuell und sieht auf den ersten Blick recht hilfreich aus: http://www.florian-diesch.de/doc/python ... de/online/