我试图从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_())
有以下几种方法:
第二个方法对于从^{} 继承的所有视图都是通用的,第一个方法只是一个包装器,它生成第二个方法的^{} 。你知道吗
相关问题 更多 >
编程相关推荐