Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QTableView:如何在列中插入项_Python_Pyqt4_Multiple Columns_Qtableview - Fatal编程技术网

Python 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

我是Python和Qt的初学者,所以我相信我的问题的解决方案对您来说非常简单,但它仍然会对我有很大帮助

我使用的是一个存储姓氏和名字的数据库。我可以访问这些信息,但无法使用QStandariem将它们插入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)
所以我得到了一张像这样的桌子: (对不起,我无法发布图像)


| . | 姓|名| |杜邦公司| |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,它工作得很好!