Python QTableView:如何在列中插入项
我是Python和Qt的初学者,所以我相信我的问题的解决方案对您来说非常简单,但它仍然会对我有很大帮助 我使用的是一个存储姓氏和名字的数据库。我可以访问这些信息,但无法使用QStandariem将它们插入QTableView 这是我的密码:Python QTableView:如何在列中插入项,python,pyqt4,multiple-columns,qtableview,Python,Pyqt4,Multiple Columns,Qtableview,我是Python和Qt的初学者,所以我相信我的问题的解决方案对您来说非常简单,但它仍然会对我有很大帮助 我使用的是一个存储姓氏和名字的数据库。我可以访问这些信息,但无法使用QStandariem将它们插入QTableView 这是我的密码: cursor.execute("SELECT last_name, first_name FROM sakila.actor ORDER BY last_name ASC") data = cursor.fetchall() model = QStan
cursor.execute("SELECT last_name, first_name FROM sakila.actor ORDER BY last_name ASC")
data = cursor.fetchall()
model = QStandardItemModel()
model.setColumnCount(2)
headerNames = []
headerNames.append("Last Name")
headerNames.append("First Name")
model.setHorizontalHeaderLabels(headerNames)
for d in data:
# Create an item with information of the database
item = QStandardItem(d[0])
item.setEditable(False)
model.appendRow(item)
self.tableViewPatient.setModel(model)
因此,我用以下方法进行查询:
cursor.execute("SELECT last_name, first_name FROM sakila.actor ORDER BY last_name ASC")
data = cursor.fetchall()
然后,我创建带有标题的表,并执行以下操作:
model = QStandardItemModel()
model.setColumnCount(2)
headerNames = []
headerNames.append("Last Name")
headerNames.append("First Name")
model.setHorizontalHeaderLabels(headerNames)
然后,对于每个元组“Last_name”和“First_name”,我只将Last_name放在表中,这样做:
for d in data:
# Create an item with information of the database
item = QStandardItem(d[0])
item.setEditable(False)
model.appendRow(item)
self.tableViewPatient.setModel(model)
所以我得到了一张像这样的桌子:
(对不起,我无法发布图像)
| . | 姓|名| |杜邦公司| |2 |梅尔克尔|| |3 | Dubois || 因此,我的问题是:我不知道如何在第二列中显示每个人的名字。 我知道我可以通过d[1]获得每个“d”(来自数据)的第一个名称,但我不知道如何将其放在第二列中。有人能帮我吗?该方法可以采用单个
QStandardItem
,也可以采用它们的列表
所以你想要的是:
for d in data:
row = []
for name in d:
item = QStandardItem(name)
item.setEditable(False)
row.append(item)
model.appendRow(row)
谢谢你的anwser ekhumo,它工作得很好!