def __init__(self, name, data, scheme, open_func, parent=None): QWidget.__init__(self, parent) NodeWidget.__init__(self, name, data, scheme) self.setGeometry(300, 300, 250, 150) self.setWindowTitle(self.name) self.layout = QGridLayout(self) # self.setLayout(self.layout) self.open = open_func i = 0 for child_name, child_scheme in self.scheme.iteritems(): widget = NodeWidget.create_node_widget(child_name, get_or_create_dict_element(self.data, child_name, NodeWidget.get_default_data(child_scheme, self.data)), child_scheme, parent=self) widget.load() if widget.two_rows: widget_col = 1 widget_row = i+1 widget_col_span = 2 widget_row_span = 1 label_col = 1 label_row = i label_col_span = 2 label_row_span = 1 i+=1 else: widget_col = 2 widget_row = i widget_col_span = 1 widget_row_span = 1 label_col = 1 label_row = i label_col_span = 1 label_row_span = 1 self.layout.addWidget(QLabel(widget.description, parent=self), label_row, label_col, label_row_span, label_col_span) self.layout.addWidget(widget, widget_row, widget_col, widget_row_span, widget_col_span) i+=1
def create_item(self): get_or_create_dict_element(self.data, "new item", StructuredNode({})) self._createItem("new item")