在pygtk中检测全屏

时间:2011-01-28 02:44:25

标签: python gtk pygtk

我希望能够检测用户是否已将我的应用设置为全屏。我知道我可以使用gtk.window.fullscreen()方法使窗口从代码全屏显示,并且该操作也会发出窗口状态事件信号,但是当我编写回调时,我无法区分何时该事件由全屏请求或其他事件激活,例如将窗口最小化到起始栏。如何检测窗口是否已更改为全屏?

1 个答案:

答案 0 :(得分:2)

您只需查看event details

  • 要查看哪些用户操作触发了该事件,请选中changed_mask
  • 要查看新状态(无论导致事件的原因),请检查new_window_state

通常这会转换为以下代码:

# Did the user actually toggle fullscreen, or was it
# a different window-state event (e.g. maximize)?
if event.changed_mask & gtk.gdk.WINDOW_STATE_FULLSCREEN:
    # What's the new state?
    print bool(event.new_window_state & gtk.gdk.WINDOW_STATE_FULLSCREEN)