2009-04-25 14 views
4

Мне нужно сделать мой верхний уровень окна, когда мне нужно. код создания окна: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) 

Но после того, как работает эта часть кода моего окна скрывающей ... Я не знаю, где это. Но моя программа не закрывается! Помощь! Как я могу сделать мой самый верх окна в нужный момент?

ответ

7

Вызов .show() или .raise() на вашем окне должен сделать его главным фокусом.

И from the doc for setWindowFlags():

Примечание: Эта функция вызывает SetParent() при изменении флагов окна, вызывая виджет будет скрыт. Вы должны вызвать шоу(), чтобы сделать виджет видимую снова ..

Я просто хотел бы добавить для всех, кто считает этот вопрос о том, что документ Qt для C++ является очень хорошим ресурсом, даже при использовании PyQt, просто убедитесь, что вы указали на версию документа Qt C++, которая относится к вашей версии PyQt (последняя версия PyQt скомпилирована против 4.4, если это то, что вы используете).

+0

'' window.raise _() '' не работает для меня в Linux и PyQt 4.8.3, это ошибка? – saeedgnu

 Смежные вопросы

  • Нет связанных вопросов^_^