2011-07-21 26 views
0

我還在學習PyGTK,我試圖弄清楚每次按下F1鍵時如何告訴窗口鎖定/取消鎖定(又名總是在上面切換)。PyGTK Hotkey Toggle Pin/Unpin

這就是我到目前爲止。

#!/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() 
+1

什麼是你的問題?這段代碼不起作用嗎? – ptomato

+0

它釘住了應用程序,但我想弄清楚什麼時候再次按下它來取消固定。你知道if else語句。 –

回答

1

不幸的是,沒有get_keep_above()方法。你必須連接到窗口的window-state-event信號;在event參數中,閱讀new_window_state字段以查看粘滯標記是否已設置,然後自行跟蹤它,例如在self.is_kept_above中。

然後你就可以在你的F1處理程序做

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