我是Python和Qt的初学者,所以我确信我的问题的解决方案对您来说非常简单,但是,它仍然会对我有所帮助。
我使用的数据库中存储了last_name和first_name。我可以访问这些信息,但我无法使用QStandarItem将它们插入QTableView。
这是我的代码:
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)
所以我得到一张如下所示的表格: (抱歉,我无法发布图片)
我的问题是:我不知道如何在每个人的第二列中显示名字。 我知道我可以获得每个" d"的第一个名称。 (来自数据)做d [1]但我不知道如何把它放在第二列。有人可以帮帮我吗?
答案 0 :(得分:3)
appendRow方法可以使用单个QStandardItem
或其列表。
所以你想要这样的东西:
for d in data:
row = []
for name in d:
item = QStandardItem(name)
item.setEditable(False)
row.append(item)
model.appendRow(row)