vielleicht weiß einer Rat.
Ich habe mir ein Fenster über Glade gezeichnet. In einem freien Container habe ich dann im Python-Skript ein gtk.Socket erzeugt.
Mit einem anderen Python-Skript erzeuge ich ein gtk.Plug und verwende die übergebene Socket-Id. (siehe Code unten)
Soweit funktioniert es mit einem aktuellen GTK (2.12) und entsprechendem PyGtk noch, aber nun kommt's. Erstens hat das Plug einen Rahmen (Dekoration) und wenn ich das Plug schließe sollte in der ersten Anwendung (die mit dem Socket) das Signal "plug-removed" ankommen und es sollte möglich sein erneut ein Plug mit dem Socket zu verbinden. All das funktioniert unter Linux gut, jedoch unter Win32 nicht.
Ist das ein bekannter Bug, oder ist unter Win32 etwas spezielles zu beachten?
Kann mir da jemand weiterhelfen?
Grüsse
Server:
Code: Alles auswählen
class Myserver:
socket_id = None
def __init__( self ): # Konstruktor
xml = gtk.glade.XML( 'server.glade' )
xml.get_widget(MAIN')
socketArea = xml.get_widget('socket')
self.image = xml.get_widget( 'plugged' )
self.image.set_from_file( path+'unplugged-icon.bmp' )
self.socket = gtk.Socket()
socketArea.add( self.socket )
self.socket_id = self.socket.get_id()
self.socket.connect( 'plug-added', self.plugged )
self.socket.connect( 'plug-removed', self.unplugged )
xml.get_widget('MAIN').connect("destroy", lambda w: gtk.main_quit())
xml.get_widget('MAIN').show_all()
def plugged( self, widget ):
self.image.set_from_file( path+'plugged-icon.bmp' )
self.socket.show()
def unplugged( self, widget ):
self.image.set_from_file( path+'unplugged-icon.bmp' )
self.socket.show()
return True
def GetSocketId( self ):
return self.socket_id
Code: Alles auswählen
class Myplug:
def __init__( self, socket_id ): # Konstruktor
xml = gtk.glade.XML( 'client.glade', root='plug1' )
xml.get_widget('plug1')
xml.signal_autoconnect( self )
self.plug = gtk.Plug( socket_id )
self.plug.connect( 'embedded', self.embedded )
self.plug.connect("destroy", lambda w: gtk.main_quit())
self.plug.add( xml.get_widget( 'plug1' ) )
self.plug.show_all()
def embedded( self, widget ):
print '...embedded...'
def on_quit( self, widget ):
self.plug.destroy()