Pyside删除窗口标志

时间:2014-01-03 01:46:27

标签: pyside flags qmainwindow

我正在设计一个Pyside Qt应用程序,我想在我的主窗口中切换QtCore.Qt.WindowStaysOnTopHint窗口标志。使用此代码设置此提示可以正常工作:

self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
self.show()

但我无法弄清楚如何使用Pyside删除窗口标志。

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:4)

窗口标志通常与现有标志一起进行“或”运算:

    print(int(self.windowFlags()))
    self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
    print(int(self.windowFlags()))

然后删除标志,并使用标志的否定将其输出:

    self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
    print(int(self.windowFlags()))

答案 1 :(得分:0)

您可以像这样在顶部或底部切换窗口显示:

def toggleFunc(self):
    if self.someCheckedButton.isChecked():  #show up at the top
        self.setWindowFlags(self.theMainWindow.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)

    else:  #show up at the bottom
        self.setWindowFlags(self.theMainWindow.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
    self.show()  #it's important to show up the window again after changing the window flags