def _add_widget(self, n):
        item_toplevel = QtGui.QStandardItem("{}th item".format(n))
        self._datamodel.setItem(n, 0, item_toplevel)

        widget_toplevel = QtGui.QPushButton("{}th button".format(n))
        qindex_toplevel = self._datamodel.index(n, 1, QtCore.QModelIndex())
        self.setIndexWidget(qindex_toplevel, widget_toplevel)

        if n == 2:
            item_child_col0 = QtGui.QAbstractOpenGLFunctionsQStandardItem("child col0")
            item_child_col1 = QtGui.QStandardItem("child col1")
            # item_toplevel.appendRow(item_child_col0)

            item_toplevel.insertRow(0, [item_child_col0, item_child_col1])

            widget_child = QtGui.QPushButton("child widget")
            qindex_child = item_child_col1.index()
            self.setIndexWidget(qindex_child, widget_child)