2011-01-28 67 views
2

我希望能夠檢測到我的應用程序是否已被用戶設置爲全屏。我知道我可以使用gtk.window.fullscreen()方法使窗口從代碼全屏顯示,並且該操作還會發出窗口狀態事件信號,但是當我編寫回調函數時,我無法區分事件何時激活通過全屏請求或通過不同的事件,例如最小化窗口到起始欄。如何檢測窗口是否已更改爲全屏?在pygtk中檢測全屏

回答

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) 
+0

我嘗試過了,也沒有工作,所以我搞砸它了一下,發現我需要使用,而不是全屏WINDOW_STATE_MAXIMIZE讓它起作用。 – user381261 2011-01-29 21:31:30