pyqt5的qtreeview实现navicat的界面
时间: 2024-04-15 22:16:13 浏览: 139
使用 PyQt5 写的 Udp Client 的例程
要实现类似Navicat的界面,需要使用QTreeView和QStandardItemModel。
首先,我们创建一个QTreeView和一个QStandardItemModel:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTreeView, QStandardItemModel
class Navicat(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Navicat")
self.setGeometry(100, 100, 800, 600)
self.tree_view = QTreeView(self)
self.tree_view.setGeometry(0, 0, 200, 600)
self.model = QStandardItemModel()
self.tree_view.setModel(self.model)
```
接下来,我们需要添加根节点和子节点:
```python
root_item = self.model.invisibleRootItem()
# 添加数据库节点
db_item = QStandardItem("Databases")
root_item.appendRow(db_item)
# 添加表节点
table_item = QStandardItem("Tables")
db_item.appendRow(table_item)
# 添加表格节点
for i in range(10):
table_item.appendRow(QStandardItem("Table {}".format(i)))
```
这里我们创建了一个根节点,下面添加了两个子节点,一个是“Databases”节点,一个是“Tables”节点。然后我们为“Tables”节点添加了10个表格节点。
最后,我们可以运行程序看一下效果:
```python
if __name__ == '__main__':
app = QApplication([])
navicat = Navicat()
navicat.show()
app.exec_()
```
效果如下图所示:
![Navicat](https://img-blog.csdnimg.cn/20201114140713862.png)
阅读全文