def addCodeToList(self): #row = self.codeListTable.rowCount() # Insert before the first selected row rows = [i.row() for i in self.codeListTable.selectionModel().selectedRows()] rows.sort() rows.append(self.codeListTable.rowCount()) #Ensure we always have a value row = rows[0] self.codeListTable.insertRow(row) # Add new XML Node codes = self.element.xpath(".//s:Codes",namespaces=_namespaces)[0] newCodePair = etree.Element(_ns("s",'CodePair')) newCodePair.set('code', "") codes.insert(row,newCodePair) #Don't have to add 1, as lXML is smart. # Make checkbox field item = QtGui.QTableWidgetItem('') item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) item.setCheckState(QtCore.Qt.Unchecked) self.codeListTable.setItem(row,1,item) self.update()