我不能在一个函数中添加很多值

I can not add many values in one function

我有一个 gui 应用程序

  1. 我把文字输入了text box1,text box2,…………text box70,然后点击pushButton,

  2. 函数return_text ()module_b.py中被调用。现在我可以通过lambda1函数调用一个实例并在class_b中使用它,但是当我点击pushbutton时我无法调用70个实例。

**A- 我想将 lineEdit_1 , lineEdit_2 ... lineEdit_70 添加到 main.py

中的 lambda 方法中

**B- 我想编辑 module_b.py 中的 (return_text (self, txt))(table2 (self, txt) ) 以打印和 return 中的值。 student1student70

谁能帮帮我?这是它的代码:

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)
        txt1 = self.ui.lineEdit.text #Method reference not Method call
        txt2 = self.ui.lineEdit2.text 
        mySlot = lambda : (instance_b.return_text_username(txt1()) 
        QtCore.QObject.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"),mySlot)


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 (self, txt):
  ####  global student1, student2 , student3………. Student70
        student1=unicode(txt) 
        return first_student
#####   ….
        …
        return 70

    def table2 (self, txt):
        print student1
        print 2
#####   ….
        …
        print 70

我能想到的最好的方法是将所有 lineEdit 收集到一个列表中并将其传递给 return_text 方法,然后在每次迭代中调用 text() 方法,这样:

number_of_line_Edit = 70
txt = [getattr(self.ui,'lineEdit{0}'.format(i)) for i in range(1,number_of_line_Edit+1)] #This will collect all lineEdit(s) reference so we can call there methods in return_text method
mySlot = lambda :instance_b.return_text(txt)
QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"),  mySlot) 

然后在module_b.pyreturn_texttable2方法中:

def return_text(self, lineEdit_list):
    my_text_list = []
    for t in lineEdit_list:
        txt = unicode(t.text())
        self.table2(txt)
        my_text_list.append(txt)
     #print my_text_list for checking purpose
     return my_text_list


## I want print password and return it.   
def table2(self, my_txt):
    print my_txt

请注意,每次调用 return_text 方法时,my_text_list 列表将始终重置为空列表,这将丢失上一次调用的 lineEdit(s) 的所有文本。