2009-04-25 7 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) 

하지만 내 창을 숨 깁니다 코드의이 부분을 실행 한 후

... 나는 어디, 모른다. 하지만 내 프로그램이 끝나지 않아! Help! 나는 창문을 가장 필요한 순간에 가장 먼저 만들 수 있습니까?

답변

7

창에서 .show() 또는 .raise()를 호출하면 포커스가 가장 높아야합니다.

그리고 from the doc for setWindowFlags() :

참고 : 숨길 수 위젯을 일으키는 윈도우 을 플래그를 변경할 때이 기능 setParent가 불려 갔을 때() 를 호출합니다. 당신 은

난 그냥 C++에 대한 Qt는 문서가 PyQt는을 사용하는 경우에도 아주 좋은 자원이라고이 문제를 발견 다른 사람에 대한 추가 싶어 .. 다시 볼 위젯을 만들기 위해 쇼()를 호출해야합니다 PyQt의 버전에 적용되는 Qt C++ 문서의 버전을 가리키고 있는지 확인하십시오 (최신 PyQt는 사용중인 경우 최신 버전의 PyQt가 컴파일됩니다).

+0

''window.raise _()''가 Linux 및 PyQt 4.8.3에서 작동하지 않습니다. 버그입니까? – saeedgnu

관련 문제