gpt4 book ai didi

python - 如何检查 Gtk 常量 (GdkWindowState) 是否包含标志

转载 作者:行者123 更新时间:2023-11-28 18:32:57 26 4
gpt4 key购买 nike

一段时间以来,我一直在寻找如何检查类型为 GdkWindowState 的 Gtk 常量的方法。包含一个标志。

我目前正在这样做:

    state=self.window_root.get_window().get_state()

if 'GDK_WINDOW_STATE_FULLSCREEN' in str(state):
...

在哪里self.window_rootGtk.Window

这是一个软技​​巧,但我想通过使用 Gdk.WindowState.FULLSCREEN 以正确的方式完成它

我试过一些类似的东西:if Gdk.WindowState.FULLSCREEN in state:但常量不可迭代。我想指出的是,只需使用 if Gdk.WindowState.FULLSCREEN == state:不起作用,因为窗口也已聚焦。

当我打印 state 时我得到:

<flags GDK_WINDOW_STATE_FULLSCREEN | GDK_WINDOW_STATE_FOCUSED of type
GdkWindowState>

所以我实际上看到有一个 |运营商,我认为应该可以用它做点什么。类似于 state.get_flags()

最佳答案

根据 PyGtk documentation , GdkWindowState 是一组位标志。尝试将其转换为整数值并使用二进制 AND:

if Gdk.WindowState.FULLSCREEN & int(state):
# ...

实际上很可能 GdkWindowState 类直接支持这个操作,或者有一些标准的方法来转换为整数。

您可以使用 print dir(state) 查看可用的字段和方法,并从那里进行调查。

关于python - 如何检查 Gtk 常量 (GdkWindowState) 是否包含标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com