PyQt5 не может удалить флаг WindowStaysOnTopHint под Ubuntu 18.04
Я пытаюсь сделать кнопку, которая бы поместила окно поверх других. Используя рекомендации из других вопросов, я поставил в своем классе setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
установить и setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
удалить флаг. Он устанавливает флаг, но когда я изменяю состояние кнопки, он все еще имеет этот флаг включен. Вот пример кода:
from PyQt5 import QtWidgets, QtCore
import sys
class widget(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.resize(500, 500)
box = QtWidgets.QVBoxLayout()
self.setLayout(box)
self.btn = QtWidgets.QPushButton("pin")
box.addWidget(self.btn)
self.btn.setCheckable(True)
self.btn.toggled.connect(self.setOnTop)
def setOnTop(self):
if self.btn.isChecked():
self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
print("checked")
else:
self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
print("unchecked")
self.show()
def main(self):
app = QtWidgets.QApplication(sys.argv)
ex = widget()
ex.show()
sys.exit(app.exec_())
main()