2013-01-13 95 views
1

我有QDialog的與我從主窗口中打開:傳遞參數彈出QDialog的窗口

Dialog = myDialog(self) 

這裏是新打開的對話框中的代碼:

class myDialog(QtGui.QDialog, Ui_DialogCalibration): 
def __init__(self, parent=None): 
    super(myDialog, self).__init__(parent) 
    self.setupUi(self) 

哪有通過從主窗口中的參數(皮棉)這一新的窗口,像

Dialog = myDialog(self, listInformation) 

,然後在myDialog類請使用t帽子清單

回答

5
class myDialog(QtGui.QDialog, Ui_DialogCalibration): 
    def __init__(self, parent=None, listInfo): 
     super(myDialog, self).__init__(parent) 
     self.listInfo = listInfo 
     self.setupUi(self) 

然後,當您創建myDialog時,可以將該列表添加爲參數。當您需要在myDialog中使用它時,您可以將其作爲self.listInfo訪問。

編輯:爲了進一步擴大的評論:

如果你有def __init__(self, parent=None, listInfo=None),你會稱呼其爲Dialog = myDialog(parent=self, listInfo=listInfo)。如果你將它作爲def __init__(self, parent, listInfo),你會做Dialog = myDialog(self, listInfo)。希望你看到這裏的模式。

+1

從主我打電話 對話框= myDialog(個體經營,列表信息) ,當我寫你的代碼,我得到這個錯誤 類型錯誤:QDialog的(QWidget的父=無,Qt.WindowFlags標誌= 0):參數1有意外鍵入'list' – Error

+0

事實上,它在彈出對話框時工作,如 Dialog = myDialog(listInfo) 並且不傳遞自我。這是否意味着我在打電話彈出窗口時不會傳遞自己作爲參數 – Error

+0

我的道歉。我明白你在做什麼。嘗試'Dialog = myDialog(self,listInfo,parent = self)'或將__init__改爲'__init __(self,parent = None,listInfo = None)',然後使用'Dialog = myDialog(parent = self,listInfo = listInfo)',或者這些行。在Python中查看關鍵字和位置參數。看看我更新的答案。 – Nathan

相關問題