qtreeview 数据库
时间: 2023-09-26 07:11:34 浏览: 168
QTreeView 是 Qt 框架中的一个控件,可以用于显示树形结构的数据。在数据库应用程序中,我们可以使用 QTreeView 显示数据库中的数据,通常使用 QStandardItemModel 作为数据模型。
首先,我们需要连接数据库并执行查询语句以获取数据。然后,我们可以使用 QStandardItemModel 创建树形结构的数据模型,并将查询结果添加到模型中。最后,我们可以将 QTreeView 控件设置为使用该模型来显示数据。
以下是一个简单的示例代码,演示如何在 QTreeView 中显示数据库中的数据:
```python
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sqlite3
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建 QTreeView 控件
self.treeView = QTreeView(self)
self.setCentralWidget(self.treeView)
# 创建数据模型
self.model = QStandardItemModel()
self.model.setHorizontalHeaderLabels(['Name', 'Age'])
# 连接数据库并执行查询语句
conn = sqlite3.connect('mydatabase.db')
cursor = conn.execute('SELECT * FROM mytable')
rows = cursor.fetchall()
# 将查询结果添加到数据模型中
for row in rows:
parentItem = self.model.invisibleRootItem()
for i in range(len(row)):
item = QStandardItem(str(row[i]))
parentItem.appendRow(item)
parentItem = item
conn.close()
# 将数据模型设置为 QTreeView 的模型
self.treeView.setModel(self.model)
self.treeView.expandAll()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
在上面的示例代码中,我们首先创建了一个 QTreeView 控件,并将其设置为主窗口的中央部件。然后,我们创建了一个 QStandardItemModel 数据模型,并将其设置为 QTreeView 的模型。
接下来,我们连接到名为“mydatabase.db”的 SQLite 数据库,并执行查询语句以获取所有行。然后,我们将查询结果添加到数据模型中。
最后,我们将数据模型设置为 QTreeView 的模型,并展开所有项以显示完整的树形结构。
阅读全文