2013-01-13 63 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

相关问题