Python QTableView:如何在列中插入项目
Posted
技术标签:
【中文标题】Python QTableView:如何在列中插入项目【英文标题】:Python QTableView : how to insert items in the columns 【发布时间】:2014-03-01 21:56:07 【问题描述】:我是 Python 和 Qt 的初学者,所以我相信我的问题的解决方案对你来说真的很容易,但它仍然对我有很大帮助。
我正在使用存储 last_name 和 first_name 的数据库。我可以访问这些信息,但我无法使用 QStdarItem 将它们插入到 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)
所以我得到一个如下所示的表格: (抱歉,我无法发布图片)
| . |姓氏 |名字 |
| 1 |杜邦 | .......... |
| 2 |梅尔科尔 | .......... |
| 3 |杜布瓦 | .......... |
因此,我的问题是:我不知道如何在第二列中显示每个人的名字。 我知道我可以通过 d[1] 获得每个“d”(来自数据)的名字,但我不知道如何将它放在第二列。有人可以帮帮我吗?
【问题讨论】:
【参考方案1】:appendRow 方法可以采用单个 QStandardItem
或它们的列表。
所以你想要这样的东西:
for d in data:
row = []
for name in d:
item = QStandardItem(name)
item.setEditable(False)
row.append(item)
model.appendRow(row)
【讨论】:
感谢您的 anwser ekhumo,它运行良好!以上是关于Python QTableView:如何在列中插入项目的主要内容,如果未能解决你的问题,请参考以下文章