pyqt5 QTreeView获取多个选中条目
时间: 2024-12-17 16:33:42 浏览: 7
在PyQt5中,`QTreeView`是一个用于显示树形数据结构的控件,如果你想获取用户在其中选择的多个条目,可以利用它的信号机制。当你在`QTreeView`中选中一项或多项时,它会触发`currentItemChanged`信号。下面是一个基本的例子:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTreeView
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.tree_view = QTreeView()
self.setCentralWidget(self.tree_view)
# 假设你有一个模型(如QStandardItemModel)
model = QStandardItemModel()
# 设置模型到tree_view上
self.tree_view.setModel(model)
# 当有item被选中时,连接信号槽
self.tree_view.currentItemChanged.connect(self.handle_selection_changed)
def handle_selection_changed(self, current_item, previous_item):
if current_item is not None:
selected_items = [current_item] + self.tree_view.selectedIndexes()[:-1]
for item in selected_items:
print(f"Selected item: {item.data()}")
# 使用Qt应用实例化窗口并运行
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个例子中,`handle_selection_changed`函数会在每次选中一个新项目时被调用,并打印出所有当前选中的项目的数据。注意,`selectedIndexes()`返回的是一个包含所有已选项目的索引列表。
阅读全文