Ersetzen CentralWidget im Hauptfenster

Ich bin irgendwie neu auf PySide.Ich habe ein Hauptfenster-Objekt, das zeigt eine widget in einer Zeit. Ich hab schon versucht das zu ändern, das zentrale widget der QMainWindow Klasse, um die zu ersetzen, die sichtbare Widget in das Fenster beim drücken einer Taste. Das problem ist, dass die Taste, die gedrückt wird, in der Widget-Klasse, nicht in der Hauptfenster-Klasse.

sagen...

class App(QtGui.QMainWindow):

    def __init__(self):
        super(App, self).__init__()

        self.initUI()

    def initUI(self):

        self.statusBar().showMessage('Listo.') #Status Bar
        self.login_screen = LoginScreen()
        self.logged_in_screen = LoggedInScreen()

        self.setCentralWidget(self.login_screen)

        self.setGeometry(300, 300, 450, 600) #Window Size
        self.setWindowTitle('PyTransactio - Client') #Window Title
        self.setWindowIcon(QtGui.QIcon('icon.png')) #App Icon
        self.show()

Die der gedrückten Taste wird in der login_screen Instanz. Die Methode wird aufgerufen, wenn die Schaltfläche geklickt wird, ist im inneren des LoginScreen Klasse:

def login(self):
        """ Send login data to the server in order to log in """

        #Process

        self.setParent(None)

Einstellung der Eltern-widget zu None entfernt das widget (login_screen) aus dem Hauptfenster. Was sollte ich tun, um zu bekommen ein weiteres widget (z.B. logged_in_screen) als zentrale widget der wichtigsten Fenster bei der loginButton (innerhalb der login_screen widget) gedrückt wird?

Vielleicht die login-Methode sollte im Hauptfenster-Klasse? Wenn ja, wie Verbinde ich die Tasten gedrückt login_screen mit der Haupt-Fenster-Methode?

InformationsquelleAutor saxarona | 2012-11-25
Schreibe einen Kommentar