Как я могу вызвать объект GUI или больше из основного класса

У меня есть приложение gui

  1. Я помещаю текст в текстовое поле1, текстовое поле2, а затем нажимаю кнопку pushButton ,
  2. moduel_b.py функция return_text_username () в moduel_b.py . Теперь я могу вызвать один экземпляр функцией lambda1 и использовать его в class_b , но я не могу называть два момента, когда я нажимаю pushbutton .

** A- Я хочу добавить lineEdit_2 в лямбда-метод в main.py или добавить instance_lambda2_password в метод connect .

** B- Я хочу изменить return_printtext_password (self, txt) в moduel_b.py для печати и возврата пароля.

Может кто-нибудь мне помочь? Вот код для этого:

main.py

 # -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui import sys from GUI import Ui_MainWindow class MainWindow(QtGui.QMainWindow,Ui_MainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) from module_b import calss_b global instance_b instance_b=calss_b(self) instance_lambda1_username=lambda: instance_b.return_text_username(self.ui.lineEdit.text())##I want to add lineEdit_2 instance_lambda2_password=lambda: instance_b.printtext2(self.ui.lineEdit_2.text()) QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), \ instance_lambda1_username)## Or add instance_lambda2_password here. if __name__ == "__main__": app = QtGui.QApplication(sys.argv) global myapp myapp = MainWindow() myapp.show() sys.exit(app.exec_()) 

module_b.py

 import sys from GUI import Ui_MainWindow from PyQt4 import QtCore, QtGui class calss_b (object): def __init__(self, parent=None): pass def return_text_username (self, txt): username=unicode(txt) print username return username ## I want print password and return it. def return_printtext_password (self, txt): password=unicode(txt) print password return password 

Вам не нужно определять lambda функцию для каждого slot , а вместо этого группировать их в одну и передавать ее методу connect , таким образом:

 txt1 = self.ui.lineEdit.text #Method reference not Method call txt2 = self.ui.lineEdit2.text mySlot = lambda : (instance_b.return_text_username(txt1()), instance_b.return_printtext_password(txt2()))# Passed to lambda method call this time QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), mySlot) 

Что касается Point-B, я думаю, вы уже успели это сделать,

  def return_text_username (self, txt): username=unicode(txt) print username return username