Вопрос

мне нужно сделать мое окно на верхнем уровне, когда мне нужно.Код создания окна:

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, если это то, что вы используете).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top