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_())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM