2016-10-12 41 views
1

這應該返回一個布爾值嗎?如何測試WindowStaysOnTopHint標誌是否設置在windowFlags中?

>>> 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 

回答

1

WindowFlags對象是線或方式,從WindowType枚舉設置標誌。 WindowType只是int的一個子類,而WindowFlags對象也支持int操作。

可以測試的標誌的存在這樣的:

>>> bool(win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint) 
False 

或這樣的:

>>> int(win.windowFlags() & QtCore.Qt.WindowStaysOnTopHint) != 0 
False 

一般而言,&返回值本身當存在時,或零當不存在:

>>> flags = 1 | 2 | 4 
>>> flags 
7 
>>> flags & 2 
2 
>>> flags & 8 
0 
相關問題