pyqt5给treewidget获取点击项的序号
时间: 2023-11-22 07:52:51 浏览: 93
对PyQt5的输入对话框使用(QInputDialog)详解
可以通过 `currentItem()` 方法获取当前选中的 `QTreeWidgetItem` 对象,然后再通过 `indexOfChild()` 方法获取该项在父节点中的序号。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
import sys
class MyTreeWidget(QTreeWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setHeaderLabels(['Name', 'Value'])
parent_item = QTreeWidgetItem(self, ['Parent', ''])
QTreeWidgetItem(parent_item, ['Child 1', 'Value 1'])
QTreeWidgetItem(parent_item, ['Child 2', 'Value 2'])
QTreeWidgetItem(parent_item, ['Child 3', 'Value 3'])
self.itemClicked.connect(self.on_tree_item_clicked)
def on_tree_item_clicked(self, item, column):
parent_item = item.parent()
if parent_item:
child_index = parent_item.indexOfChild(item)
print('Child index:', child_index)
else:
parent_index = self.indexOfTopLevelItem(item)
print('Parent index:', parent_index)
if __name__ == '__main__':
app = QApplication(sys.argv)
tree = MyTreeWidget()
tree.show()
sys.exit(app.exec_())
```
运行后,点击某个项,就会在控制台输出该项在父节点中的序号。如果该项是顶级项,则输出其在根节点列表中的序号。
阅读全文