【问题标题】:PyGTK Hotkey Toggle Pin/UnpinPyGTK 热键切换固定/取消固定
【发布时间】:2011-10-10 01:56:17
【问题描述】:

我仍在学习 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()

【问题讨论】:

  • 你的问题是什么?这段代码不行吗?
  • 它固定了应用程序,但我想知道何时再次按下它以取消固定。你知道 if else 语句。

标签: toggle pygtk hotkeys


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    很遗憾,没有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 处理程序中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      相关资源
      最近更新 更多