PyGTK Hotkey Toggle Pin / Unpin

时间:2011-07-21 09:29:37

标签: 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):
    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()

2 个答案:

答案 0 :(得分:1)

不幸的是,没有get_keep_above()方法。你必须连接到窗口的window-state-event信号;在event参数中,阅读new_window_state字段以查看是否设置了粘性标记,然后自行跟踪,例如在self.is_kept_above中。

然后你可以做

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

在你的F1处理程序中。

答案 1 :(得分:0)

一般来说,你可以捕捉按键,然后发出你想要的任何信号,就像我在这个回答中写的那样:PYGTK redirect event to TreeView