Esempio n. 1
0
 def addGuiItem(self, ParentClass, parameters, width):
     """Defines a new set of Label and a box that can be a
     ComboBox, RComboBox, LineEdit, TextEdit or DoubleSpinBox."""
     widgetType=parameters[1]
     #check if there are default values:
     if len(parameters)>2:
         default=parameters[2]
     else:
         default=""
     skip = False
     notnull=parameters[3]
     #setting the right type of widget
     if widgetType=="comboBox":
         widget = QComboBox(ParentClass)
         widget.addItems(default.split(';'))
         widget.setFixedHeight(26)
     elif widgetType=="RComboBox":
         widget = RComboBox(ParentClass, default.split(';'))
         widget.setFixedHeight(26)
         self.hasRComboBox = True
         widget.setEditable(True)
     elif widgetType=="RListWidget":
         widget = RListWidget(ParentClass,
         default.split(';'), notnull)
         widget.setMinimumHeight(116)
         self.hasRComboBox = True
         widget.setSelectionMode(
         QAbstractItemView.ExtendedSelection)
     elif widgetType=="doubleSpinBox":
         widget = QDoubleSpinBox(ParentClass)
         widget.setValue(float(default))
         widget.setFixedHeight(26)
         widget.setMaximum(999999.9999)
         widget.setDecimals(4)
     elif widgetType=="textEdit":
         widget = QTextEdit(ParentClass)
         widget.setPlainText(default)
         widget.setMinimumHeight(116)
     elif widgetType=="helpString":
         self.helpString = default
         skip = True
     else:
         #if unknown assumes lineEdit
         widget = QLineEdit(ParentClass)
         widget.setText(default)
         widget.setFixedHeight(26)
     if not skip:
         hbox = QHBoxLayout()
         name="widget"+unicode(self.widgetCounter)
         widget.setObjectName(name)
         widget.setMinimumWidth(250)
         self.widgets.append(widget)
         name="label"+unicode(self.widgetCounter)
         self.widgetCounter += 1
         label = QLabel(ParentClass)
         label.setObjectName(name)
         label.setFixedWidth(width*8)
         label.setText(parameters[0])
         hbox.addWidget(label)
         hbox.addWidget(widget)
         self.vbox.addLayout(hbox)