gpt4 book ai didi

python - 如何选择QTableWidget的多个单元格?

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:33 24 4
gpt4 key购买 nike

我正在尝试从 QTableWidget 中预先选择多个“单个值(或一些单元格喜欢称为 em)”,但我似乎无法找到正确的方法。我已经尝试过 setRangeSelect、selectRow 和 selectColumn,但没有一种方法有效。

寻求帮助。 (请查看我正在尝试做的测试方法)

import sys
import json
from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QPushButton
from PyQt5.Qt import QTableWidgetItem, QAbstractItemView

class Demo(QWidget):

def __init__(self):
super().__init__()
self.rowTracker = []
self.initUI()
self.initQTableWidget()

def initUI(self):
self.resize(600, 600)
# populate some data
self.rows = [['a1','b1', 'c1'], ['a2','b2','c2'], ['a3','b3','c3'], ['a4','b4','c4'], ['a5','b5','c5']]

self.btn = QPushButton(self)
self.btn.move(50, 250)
self.btn.resize(150, 40)
self.btn.setText('Check')
self.btn.clicked.connect(self.test)

def initQTableWidget(self):
self.tableWidget = QTableWidget(self)
self.tableWidget.resize(self.width(), self.height()-400)
self.tableWidget.setRowCount(len(self.rows))
self.tableWidget.setColumnCount(len(self.rows[0]))

# here we will change row selection behavior to multiselection
self.tableWidget.setSelectionMode(QAbstractItemView.MultiSelection)

for row in enumerate(self.rows):
# print(row)
for col in enumerate(row[1]):
item = QTableWidgetItem()
item.setText(col[1])
self.tableWidget.setItem(row[0], col[0], item)

def test(self):
# print(dir(self.tableWidget))
self.tableWidget.select('<2nd row>', '<1st column>')

self.tableWidget.select('<3nd row>', '<2nd column>')
# self.tableWidget.setRangeSelect()

app =QApplication(sys.argv)
widget = Demo()
widget.show()
sys.exit(app.exec_())

最佳答案

有以下几种方法:

  1. setSelected() QtableWidgetItem的方法:
self.tableWidget.item(1, 0).setSelected(True)
self.tableWidget.item(2, 1).setSelected(True)
  1. select() QItemSelectionModel的方法:
model = self.tableWidget.model()
selection_model = self.tableWidget.selectionModel()
selection_model.select(model.index(1, 0), QItemSelectionModel.Select)
selection_model.select(model.index(2, 1), QItemSelectionModel.Select)

第二种方法适用于所有继承自 QAbstractItemView 的 View 。 ,第一个方法只是一个包装器,它使 QTableWidget第二种方法。

关于python - 如何选择QTableWidget的多个单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57424817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com