2011-07-21 12 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) 

を行うことができます。

0

私がこの回答に書いたように、あなたは、キー入力をキャプチャして、あなたが好きな信号発することができる:PYGTK redirect event to TreeView

+0

質問が更新されました。 –