PyQt5基础学习-QTableWidget().findItems(根据文本找出所属位置) 1.QTableWidget().setItem(根据位置设置元素) 2.QTableWidget().verticalScrollBar().setSliderPosition(定位到某一行)
根据查找的文本,对表格中的元素进行搜索, 搜索到的结果返回为item元素, 通过item.row()返回行, item.col()返回列
""" 在表格中快速定位到特定的行 1. 数据的定位: findItems 2. 如果找到满足条件的单元格, 会定位到单元格所在的行: setSliderPosition(row) """ import sys from PyQt5.QtWidgets import * from PyQt5 import QtCore from PyQt5.QtGui import QColor, QBrush from PyQt5 import QtWidgets class DataLocation(QWidget): def __init__(self): super(DataLocation, self).__init__() self.initUI() def initUI(self): self.setWindowTitle("QTableWidget 例子") self.resize(600, 800) layout = QHBoxLayout() tableWidget = QTableWidget() tableWidget.setRowCount(40) tableWidget.setColumnCount(4) layout.addWidget(tableWidget) for i in range(40): for j in range(4): itemContent = "(%d, %d)" % (i, j) tableWidget.setItem(i, j, QTableWidgetItem(itemContent)) self.setLayout(layout) #搜索满足条件的Cell text = "(13, 1)" #进行精确匹配 items = tableWidget.findItems(text, QtCore.Qt.MatchExactly) if len(items) > 0: item = items[0] item.setBackground(QBrush(QColor(0, 255, 0))) item.setForeground(QBrush(QColor(255, 0, 0))) row = item.row() #定位到指定的行 tableWidget.verticalScrollBar().setSliderPosition(row) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) main = DataLocation() main.show() sys.exit(app.exec_())
每天更新pyQt5内容