2016-05-28 22 views
0

Ich verwende pyqt, um ein GUI zu erstellen, mit der .UI-Datei von Qt Designer, und dann von Pyuic4 konvertieren.Senden von Daten von einem Fenster zum Hauptfenster in pyqt

Ich habe zwei Fenster,
1. - Hauptfenster (die einige Label und Tasten haben)
2. - Fenster ist ein Zifferneingabefenster.

ich die Py der UI-Datei seperate haben und es in Hauptprogramm laden, indem

class mainwindow(QtGui.QWidget): 
    def __init__(self, parent = None): 
     super(mainwindow, self).__init__(parent) 
     self.ui = Ui_main() 
     self.ui.setupUi(self) 
# this is same for keypad window also.. 
# Inside the keypad window class i have added functions for click & display events. 

Wenn ich eine Schaltfläche in Hauptfenster klicken, sollte die num Tastatur Fenster öffnen. (Ich habe dies erfolgreich geschehen)

der Hauptcode ist wie folgt,

def main(): 
    app = QtGui.QApplication(sys.argv) 
    home = mainwindow() #mainwindow object 
    keypad = keypad()  #keypad object 
    home.ui.set_btn.clicked.connect(keypad.show) #keypad window will show if press set_btn 
    homewindow.show() 
    sys.exit(app.exec_()) 

I geben Werte Tastenfeld ein, und es wird in dem Raum in dem gleichen Fenster versehen gezeigt.

Jetzt muss ich den eingegebenen Wert in das Hauptfenster zurückgeben, um den Wert zu aktualisieren.

Das scheint eine einfache Frage zu sein, aber ich konnte nicht finden, dass plz mir hilft.

* Gibt es eine existierende Methode für Tastaturoperationen, in qtdesigner oder pyqt ??
Nur eine Idee wäre auch ausreichend ..

Danke !!!

Antwort

1

Was Sie wollen, ist eine neue Methode zu Handle Ihren Rückgabewert zu definieren.

In Ihrem mainwaindow Sie definieren den Handler:

class mainwindow(QtGui.QWidget): 
    def __init__(self, parent = None): 
     super(mainwindow, self).__init__(parent) 
     self.ui = Ui_main() 
     self.ui.setupUi(self) 
    def keypadHandler(self, value): 
     # handle the value here 

Und dann, genau wie Sie das Signal aus dem Hauptfenster schließen Sie das Tastatur-Fenster anzuzeigen, stellen Sie ein Signal in die Tastatur Klasse und verbinden Sie es zu Ihrem neuen Handler:

def main(): 
    app = QtGui.QApplication(sys.argv) 
    home = mainwindow() #mainwindow object 
    keypad = keypad()  #keypad object 
    keypad.ui.updated_value.connect(home.keypadHandler) # updated_value show preferably be emitted everytime the value changes 
    home.ui.set_btn.clicked.connect(keypad.show) #keypad window will show if press set_btn 
    homewindow.show() 
    sys.exit(app.exec_()) 
Verwandte Themen