pyqt5 treeview 获取选中的
时间: 2023-06-05 21:48:02 浏览: 133
节点
可以使用以下代码获取选中节点的文本:
```
selected_item = treeview.currentItem()
if selected_item is not None:
text = selected_item.text()
print(text)
```
其中,`treeview` 是 `QTreeView` 对象,`currentItem()` 方法返回当前选中的节点,`text()` 方法返回节点的第一列文本。如果没有选中任何节点,`currentItem()` 方法将返回 `None`。
相关问题
pyqt5获取comboBox选中的值
您可以使用 `currentText()` 方法来获取 `QComboBox` 中当前选中的文本值。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QComboBox, QWidget, QVBoxLayout
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.layout = QVBoxLayout()
self.comboBox = QComboBox(self)
self.comboBox.addItem("Option 1")
self.comboBox.addItem("Option 2")
self.comboBox.addItem("Option 3")
self.comboBox.currentIndexChanged.connect(self.onComboBoxIndexChanged)
self.layout.addWidget(self.comboBox)
self.setLayout(self.layout)
def onComboBoxIndexChanged(self, index):
selected_value = self.comboBox.currentText()
print(selected_value)
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在上面的示例中,我们创建了一个 `QComboBox` 对象,并添加了三个选项。当用户选择不同的选项时,`onComboBoxIndexChanged` 方法会被调用,并通过 `currentText()` 方法获取当前选中的文本值。然后,您可以根据需要使用该值进行后续操作。
pyqt5 获取qtablewidget选中的行号
你可以使用 QTableWidget 的 selectedItems() 方法获取所有选中的 QTableWidgetItem 对象,然后再遍历这些对象获取它们所在的行号。
以下是一个示例代码,演示如何获取 QTableWidget 中选中行的行号:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
app = QApplication([])
# 创建 QTableWidget 对象
table = QTableWidget(5, 3)
# 设置表头
table.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
# 填充数据
table.setItem(0, 0, QTableWidgetItem('Alice'))
table.setItem(0, 1, QTableWidgetItem('25'))
table.setItem(0, 2, QTableWidgetItem('Female'))
table.setItem(1, 0, QTableWidgetItem('Bob'))
table.setItem(1, 1, QTableWidgetItem('30'))
table.setItem(1, 2, QTableWidgetItem('Male'))
table.setItem(2, 0, QTableWidgetItem('Charlie'))
table.setItem(2, 1, QTableWidgetItem('35'))
table.setItem(2, 2, QTableWidgetItem('Male'))
table.setItem(3, 0, QTableWidgetItem('David'))
table.setItem(3, 1, QTableWidgetItem('40'))
table.setItem(3, 2, QTableWidgetItem('Male'))
table.setItem(4, 0, QTableWidgetItem('Eva'))
table.setItem(4, 1, QTableWidgetItem('45'))
table.setItem(4, 2, QTableWidgetItem('Female'))
# 选中第1行和第3行
table.selectRow(0)
table.selectRow(2)
# 获取选中行的行号
selected_rows = []
for item in table.selectedItems():
if item.column() == 0: # 判断是否是第一列
row = item.row()
if row not in selected_rows:
selected_rows.append(row)
print(selected_rows) # 输出 [0, 2]
```
在上面的代码中,我们首先创建了一个 5 行 3 列的 QTableWidget,并填充了一些数据。然后我们选中第 1 行和第 3 行,最后通过遍历选中的 QTableWidgetItem 对象,获取它们所在的行号。注意我们只关心每行第一列的数据。输出结果为 [0, 2],表示选中的行号为 0 和 2。