如何测试 windowFlags 中是否设置了 WindowStaysOnTopHint 标志?
How to test if WindowStaysOnTopHint flag is set in windowFlags?
这应该是 return 布尔值吗?
>>> win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint
<PyQt4.QtCore.WindowFlags object at 0x7ad0578>
我已经知道了
# enable always on top
win.windowFlags() | QtCore.Qt.WindowStaysOnTopHint
# disable it
win.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint
# toggle it
win.windowFlags() ^ QtCore.Qt.WindowStaysOnTopHint
WindowFlags
对象是 WindowType
枚举中标志的 OR 集合。 WindowType
只是int
的子类,WindowFlags
对象也支持int
操作。
您可以像这样测试是否存在标志:
>>> bool(win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint)
False
或者像这样:
>>> int(win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint) != 0
False
一般来说,&
returns 存在时为值本身,不存在时为零:
>>> flags = 1 | 2 | 4
>>> flags
7
>>> flags & 2
2
>>> flags & 8
0
这应该是 return 布尔值吗?
>>> win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint
<PyQt4.QtCore.WindowFlags object at 0x7ad0578>
我已经知道了
# enable always on top
win.windowFlags() | QtCore.Qt.WindowStaysOnTopHint
# disable it
win.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint
# toggle it
win.windowFlags() ^ QtCore.Qt.WindowStaysOnTopHint
WindowFlags
对象是 WindowType
枚举中标志的 OR 集合。 WindowType
只是int
的子类,WindowFlags
对象也支持int
操作。
您可以像这样测试是否存在标志:
>>> bool(win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint)
False
或者像这样:
>>> int(win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint) != 0
False
一般来说,&
returns 存在时为值本身,不存在时为零:
>>> flags = 1 | 2 | 4
>>> flags
7
>>> flags & 2
2
>>> flags & 8
0