【发布时间】:2011-01-28 02:44:24
【问题描述】:
我希望能够检测我的应用是否已被用户设置为全屏。我知道我可以使用gtk.window.fullscreen() 方法从代码中使窗口变为全屏,并且该操作还会发出一个窗口状态事件信号,但是当我编写回调时,我无法区分事件何时发生由全屏请求或其他事件激活,例如将窗口最小化到开始栏。如何检测窗口是否已更改为全屏?
【问题讨论】:
我希望能够检测我的应用是否已被用户设置为全屏。我知道我可以使用gtk.window.fullscreen() 方法从代码中使窗口变为全屏,并且该操作还会发出一个窗口状态事件信号,但是当我编写回调时,我无法区分事件何时发生由全屏请求或其他事件激活,例如将窗口最小化到开始栏。如何检测窗口是否已更改为全屏?
【问题讨论】:
您只需检查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)
【讨论】: