Python 如何在QTreeWidget中获取单击的项目?
我有一个二维QTreeWidget,如何通过单击它来获取项目?我使用PyQt5。我有这部分代码,但它只获取所选行的第一项(或通过更改baseNode.text(#)获得的任何其他项) 您只需使用Python 如何在QTreeWidget中获取单击的项目?,python,python-3.x,pyqt,pyqt5,qtreewidget,Python,Python 3.x,Pyqt,Pyqt5,Qtreewidget,我有一个二维QTreeWidget,如何通过单击它来获取项目?我使用PyQt5。我有这部分代码,但它只获取所选行的第一项(或通过更改baseNode.text(#)获得的任何其他项) 您只需使用QTreeWidgetItem和单击的列发送的信号: 例如: from PyQt5 import QtCore, QtGui, QtWidgets class Widget(QtWidgets.QWidget): def __init__(self, parent=None):
QTreeWidgetItem
和单击的列发送的信号:
例如:
from PyQt5 import QtCore, QtGui, QtWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
lay = QtWidgets.QVBoxLayout(self)
tree = QtWidgets.QTreeWidget()
tree.setColumnCount(2)
lay.addWidget(tree)
for i in range(4):
parent_it = QtWidgets.QTreeWidgetItem(["{}-{}".format(i, l) for l in range(2)])
tree.addTopLevelItem(parent_it)
for j in range(5):
it = QtWidgets.QTreeWidgetItem(["{}-{}-{}".format(i, j, l) for l in range(2)])
parent_it.addChild(it)
tree.expandAll()
tree.itemClicked.connect(self.onItemClicked)
@QtCore.pyqtSlot(QtWidgets.QTreeWidgetItem, int)
def onItemClicked(self, it, col):
print(it, col, it.text(col))
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
您只需使用QTreeWidgetItem
和单击的列发送的信号:
例如:
from PyQt5 import QtCore, QtGui, QtWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
lay = QtWidgets.QVBoxLayout(self)
tree = QtWidgets.QTreeWidget()
tree.setColumnCount(2)
lay.addWidget(tree)
for i in range(4):
parent_it = QtWidgets.QTreeWidgetItem(["{}-{}".format(i, l) for l in range(2)])
tree.addTopLevelItem(parent_it)
for j in range(5):
it = QtWidgets.QTreeWidgetItem(["{}-{}-{}".format(i, j, l) for l in range(2)])
parent_it.addChild(it)
tree.expandAll()
tree.itemClicked.connect(self.onItemClicked)
@QtCore.pyqtSlot(QtWidgets.QTreeWidgetItem, int)
def onItemClicked(self, it, col):
print(it, col, it.text(col))
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
这意味着项目没有子项目。这意味着项目没有子项目。