QTreeview 包含新增和删除按钮
时间: 2024-04-15 16:31:22 浏览: 18
您可以将QTreeView与QPushButton结合使用,以在树视图中包含新增和删除按钮。以下是一种实现方法:
1. 创建一个包含按钮和树视图的主窗口。
2. 在主窗口中添加一个QVBoxLayout布局,并将其设置为主窗口的主布局。
3. 创建一个QTreeView对象,并将其添加到布局中。
4. 创建两个QPushButton对象,一个用于新增按钮,另一个用于删除按钮。
5. 将这两个按钮添加到布局中。
6. 实现新增按钮的槽函数,以在树视图中添加新项。
7. 实现删除按钮的槽函数,以从树视图中删除选定项。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QTreeView, QPushButton, QStandardItemModel, QStandardItem
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.tree_view = QTreeView()
layout.addWidget(self.tree_view)
self.add_button = QPushButton("新增")
self.add_button.clicked.connect(self.add_item)
layout.addWidget(self.add_button)
self.delete_button = QPushButton("删除")
self.delete_button.clicked.connect(self.delete_item)
layout.addWidget(self.delete_button)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
self.model = QStandardItemModel()
self.tree_view.setModel(self.model)
def add_item(self):
item = QStandardItem("新项")
self.model.appendRow(item)
def delete_item(self):
indexes = self.tree_view.selectedIndexes()
if indexes:
index = indexes[0]
item = self.model.itemFromIndex(index)
self.model.removeRow(item.row())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
这个示例代码创建了一个包含新增和删除按钮的主窗口。单击新增按钮将在树视图中添加一个名为"新项"的新项,而单击删除按钮将删除树视图中选定的项。您可以根据自己的需求进行修改和扩展。