pyqt5中treewidget获取节点的坐标
时间: 2023-08-30 16:06:48 浏览: 97
您可以使用 `mapToGlobal()` 方法将 `QTreeWidgetItem` 的局部坐标转换为全局坐标,然后获取其定位的位置。
以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
class MyTreeWidget(QTreeWidget):
def __init__(self):
super().__init__()
self.setColumnCount(1)
self.setHeaderLabel("Tree")
self.addTopLevelItem(QTreeWidgetItem(["Root"]))
child1 = QTreeWidgetItem(["Child 1"])
self.topLevelItem(0).addChild(child1)
child2 = QTreeWidgetItem(["Child 2"])
self.topLevelItem(0).addChild(child2)
self.itemClicked.connect(self.on_item_clicked)
def on_item_clicked(self, item, column):
# 获取节点的全局坐标
pos = item.mapToGlobal(item.rect().topLeft())
print("Item clicked:", item.text(column), "at position:", pos)
if __name__ == '__main__':
app = QApplication(sys.argv)
tree = MyTreeWidget()
tree.show()
sys.exit(app.exec_())
```
在这个示例中,当用户单击树形控件中的任何一个节点时,程序将在控制台输出该节点的文本和其在窗口中的位置。
阅读全文