2014-10-31 2 views
1

저는 PyQt4를 처음 사용합니다. 내 질문은 매우 간단합니다 : 나는 암호 창을 열 수없고, 인증되면 닫고 숨기고 새로운 별도의 창을 엽니 다. 두 번째 창이 빨리 사라집니다. 내 접근 방식은 다음과 같습니다 (단순화) :PyQt4에서 연속적인 창 표시

import sys, time 
from PyQt4 import QtGui 

class Window2(QtGui.QWidget): 
    def __init__(self): 
     super(Window2, self).__init__() 
     self.initUI() 

    def initUI(self): 
     self.setWindowTitle('Window2') 
     # ...add the widgets, etc. 
     self.show() 

class PasswordWindow(QtGui.QWidget): 
    def __init__(self): 
     super(PasswordWindow, self).__init__() 
     self.initUI() 

    def initUI(self): 
     self.setWindowTitle('PasswordWindow') 
     self.show() 
     # ...Here, I'd input the password, authenticate, etc 
     self.hide() 
     w2 = window2() # go to the true main window 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    pw = PasswordWindow() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 

미리 감사드립니다.

답변

0

PasswordWindow.initUI 기능과 로컬 인 Window2 개체와 관련이 있다고 생각합니다. 내가

self.w2 = Window2() 

w2 = Window2() 

를 교체 할 때 내가 원하는 효과를 얻을.

+0

감사합니다. 마이크가 작동했습니다. 범위가 문제였습니다. –

0

initUi가 돌아 오면 w2가 파괴됩니다. Doing self.w2 = Window2()는 암호 창 개체에 w2를 할당하므로 암호 개체가 소멸 될 때까지 w2가 존재합니다.

+0

감사합니다, Shrewmouse, 가능한 한 가장 간단한 프로그램을 만들려고했는데 암호 창이 숨겨져 "부모"개체가되도록했습니다. –