PyQt - создать окно верхнего уровня
Вопрос
мне нужно сделать мое окно на верхнем уровне, когда мне нужно.Код создания окна:
class Application(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, None, Qt.Tool | Qt.FramelessWindowHint)
self.setFocusPolicy(Qt.StrongFocus)
self.setAttribute(Qt.WA_QuitOnClose, True)
И когда мне нужно, я делаю:
self.setWindowFlags(Qt.WindowStaysOnTopHint)
Но после запуска этой части кода мое окно скрывается...Я не знаю, где это находится.Но моя программа не закрывается!Помогите!Как я могу сделать свое окно максимально верхним в нужный момент?
Решение
Вызов .show() или .raise() в вашем окне должен сделать его в центре внимания.
И из документа для setWindowFlags():
Примечание:Эта функция вызывает SetParent() при изменении флагов для окна, в результате чего виджет становится скрытым.Вы должны вызвать show(), чтобы сделать виджет снова видимым..
Я просто хотел добавить для всех, кто найдет этот вопрос, что Qt doc для C ++ является очень хорошим ресурсом даже при использовании PyQt, просто убедитесь, что вы указали на версию Qt C ++ doc, которая применяется к вашей версии PyQt (последняя версия PyQt скомпилирована для версии 4.4, если это то, что вы используете).