Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyGtk-窗口位置改变时调用函数?_Python_Gtk_Pygtk - Fatal编程技术网

Python PyGtk-窗口位置改变时调用函数?

Python PyGtk-窗口位置改变时调用函数?,python,gtk,pygtk,Python,Gtk,Pygtk,我有一个基本的PythonGTK程序来显示窗口的位置,有没有一种简单的方法可以在移动窗口时更新它 #!/usr/bin/python import gtk class app(gtk.Window): def __init__(self): super(app, self).__init__() self.set_position(gtk.WIN_POS_CENTER) self.set_title("Window Position Test") se

我有一个基本的PythonGTK程序来显示窗口的位置,有没有一种简单的方法可以在移动窗口时更新它

#!/usr/bin/python

import gtk

class app(gtk.Window):

  def __init__(self):
    super(app, self).__init__()

    self.set_position(gtk.WIN_POS_CENTER)
    self.set_title("Window Position Test")
    self.set_decorated(True)
    self.set_has_frame(False)
    self.set_resizable(False)
    self.set_default_size(320, 50)
    self.connect("destroy", gtk.main_quit)
    vbox = gtk.VBox(spacing=4)
    hbox = gtk.HBox(spacing=4)

    self.pos_label = gtk.Label()
    vbox.add(self.pos_label)

    self.add(vbox)

    self.update_pos()
    self.show_all()


  def update_pos(self):
    ''' Get window position, display + log '''
    pos = str( self.get_position() )
    print( pos )
    self.pos_label.set_label( pos )


app()
gtk.main()

最后只需附加到“配置事件”:

#!/usr/bin/python

import gtk

class app(gtk.Window):

  def __init__(self):
    super(app, self).__init__()

    self.set_position(gtk.WIN_POS_CENTER)
    self.set_title("Window Position Test")
    self.set_decorated(True)
    self.set_has_frame(False)
    self.set_resizable(False)
    self.set_default_size(320, 50)
    self.connect("destroy", gtk.main_quit)
    vbox = gtk.VBox(spacing=4)
    hbox = gtk.HBox(spacing=4)

    self.pos_label = gtk.Label()
    vbox.add(self.pos_label)

    self.add(vbox)

    self.update_pos()
    self.show_all()

    self.connect("configure-event", self.update_pos)


  def update_pos(self, *args):
    ''' Get window position, display + log '''
    pos = str( self.get_position() )
    print( pos )
    self.pos_label.set_label( pos )


app()
gtk.main()