Я пытаюсь вставить список элементов в столбцы QtreeWidget: каждая информация вставляется в каждый столбец, поэтому количество столбцов равно числу. Я использую архитектуру MVC, но вставка не удалась!Добавить список элементов в столбцах QtableWidget
Это мое мнение:
def addContact(self, list):#add contact to my QTreeWidget
list=[] #list of contact
items=[]; #list of item
self.treeWidget.setColumnCount(4);
for i in list:
items.append(QtGui.QTreeWidgetItem(list[i])); #create a QtreeWidgetItem's and append them
items.setText(i,items[i])
self.treeWidget.insertTopLevelItem(item[i]) #add all in my tree
class view_dialog(QtGui.QDialog, Ui_Dialog):
def __init__(self):
QtGui.QDialog.__init__(self)
Ui_Dialog.__init__(self)
self.setupUi(self)
def readData(self): #read data entered by user
nom=self.nom_line.text()
prenom=self.prenom_line.text()
tel=self.tel_line.text()
adresse=self.adresse_line.text()
contact=[nom, prenom, tel, adresse]
return contact
def clearData(self): # clear data
self.nom_line.clear()
self.prenom_line.clear()
self.tel_line.clear()
self.adresse_line.clear()
это моя модель:
class modelContact:
def __init__(self):
self.contact=[] #Create a list of Contact
def AddContact(self, nom, prenom, tel, adresse):#GetContact from my QList
self.contact.append(nom);
self.contact.append(prenom);
self.contact.append(tel);
self.contact.append(adresse);
и это мой контроллер:
def addContactToPhoneBook(self):
list=self.dialog.readData()
self.window.addContact(list)
self.dialog.clearData()
Кто-то может помочь мне найти то, что это не так ?
UDPDATE
я изменил на мой взгляд, как я добавить список элементов в QTreeWidget, который кажется более логичным для меня
мой новый вид:
class view_window(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
def addContact(self, list):#add contact to my QTreeWidget
#list=[] #list of contact
items=[]; #list of item
self.treeWidget.setColumnCount(4);
for i in list:
items.append(QtGui.QTreeWidgetItem(i)); #create a QtreeWidgetItem's and append them
for j in range(4):
items.setText(j,items(j))
self.treeWidget.insertTopLevelItem(items) #add all in my tree
Но теперь я у меня есть malloc_error_break для отладки, и я думаю, что это потому, что я не выделял свои элементы, а в python, так как я могу сделать QTreeWidgetItem * items = new QTreeWidgetItem() с моим списком элементов?
'список = []' гарантирует, что для- цикл никогда не выполняется, и никакие элементы не добавляются. Эта строка должна быть удалена. – mdurant
Эй, за ваш ответ! Я удалил список строк [], но у меня возникла новая проблема с этой строкой: items.append (QtGui.QTreeWidgetItem (list [i])), что нормально, потому что list [i] не является целым числом! Итак, как я могу добавить в свой список элементов, мой список контактов данных? Или, может быть, есть другой способ сделать это? – Ary
Позвольте мне понять, что в addContact список имеет форму [nom, prenom, tel, adresse], которые являются всеми строками, и вам нужна одна строка, добавленная к дереву с этой информацией? – mdurant