Toggle PyGTK热键切换锁定/取消锁定

Toggle PyGTK热键切换锁定/取消锁定,toggle,pygtk,hotkeys,Toggle,Pygtk,Hotkeys,我仍在学习PyGTK,我试图弄清楚如何在每次按下F1键时告诉窗口锁定/取消锁定(也称为切换始终在顶部) 这就是我目前得到的 #!/usr/bin/env python import gtk class app(gtk.Window): def pinning(self, widget, event) : if event.keyval == gtk.keysyms.F1 : self.set_keep_above(True) def __init__(self):

我仍在学习PyGTK,我试图弄清楚如何在每次按下F1键时告诉窗口锁定/取消锁定(也称为切换始终在顶部)

这就是我目前得到的

#!/usr/bin/env python

import gtk

class app(gtk.Window):

  def pinning(self, widget, event) :
   if event.keyval == gtk.keysyms.F1 :
    self.set_keep_above(True)

  def __init__(self):
    super(app, self).__init__()
    self.set_position(gtk.WIN_POS_CENTER)
    self.set_title("TestApp")
    self.set_default_size(320, 200)
    self.connect("destroy", gtk.main_quit)
    self.connect("key-press-event", self.pinning)
    self.show_all()

app()
gtk.main()

一般来说,您可以捕获按键,然后发出您想要的任何信号,就像我在回答中所写的:

不幸的是,没有
get\u keep\u over()
方法。您必须连接到窗口的
窗口状态事件
信号;在
事件
参数中,读取
新窗口状态
字段,查看是否设置了粘性标志,然后自己跟踪它,例如在
self.is_keeped_上方

那你就可以了

if self.is_kept_above:
    self.set_keep_above(False)
else:
    self.set_keep_above(True)

在F1处理程序中。

您的问题是什么?这个代码不起作用吗?它会锁定应用程序,但我想知道我什么时候再次按下它以将其解锁。你知道if-else语句。