当前位置: 首页 PyQt5高级控件 - 表格与树控件 QTableWidget单元格添加控件与单元格设置
add-vip

QTableWidget单元格添加控件与单元格设置

一、学习指导

本节课主要学习QTableWidget单元格添加控件与单元格设置,内容包含对QTableWidget单元格的设置、文本内容的设置和图片的插入等内容。QTableWidget的应用也比较简单,但却很实用,除此之外了解QTableWidget的设置对于我们学习其他类似的表格和树控件也有很好的帮助。

二、代码演示

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("高级控件-QTableWidget单元格添加控件与单元格设置 - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()

    def func(self):
        # 创建QTableWidget
        tablewidget = QTableWidget()
        tablewidget.setRowCount(4)
        tablewidget.setColumnCount(5)

        # 数据源
        tablewidget.setHorizontalHeaderLabels(['序号', '姓名', '成绩'])

        # 先放一个数据
        item1 = QTableWidgetItem('张三')
        tablewidget.setItem(0, 0, item1)

        item2 = QTableWidgetItem('李四')
        tablewidget.setItem(0, 1, item2)

        item3 = QTableWidgetItem('赵武')
        tablewidget.setItem(1, 0, item3)

        item4 = QTableWidgetItem('王六')
        tablewidget.setItem(1, 1, item4)

        # 放一个控件在单元格中
        box1 = QComboBox()
        box1.addItem('男')
        box1.addItem('女')
        tablewidget.setCellWidget(0, 2, box1)

        # 搜索数据
        text = '张三'
        from PyQt5 import QtCore
        items = tablewidget.findItems(text, QtCore.Qt.MatchExactly)
        if len(items) > 0:
            item = items[0]
            item.setBackground(QBrush(QColor('green')))  # 设置颜色
            # item.setForeground(QBrush(QColor('green')))  # 设置颜色
            item.setFont(QFont('站酷酷黑', 20, QFont.Black))
            item.setTextAlignment(Qt.AlignRight | Qt.AlignBottom)  # 文本对齐方式

        # tablewidget.setSpan(0, 0, 2, 1)  # 第一行,第一列,合并2行,合并1列
        tablewidget.setSpan(1, 0, 1, 2)

        # 设置单元格尺寸
        # tablewidget.setRowHeight(1, 60)  # 第二行高度60
        # tablewidget.setColumnWidth(0, 200)  # 第1行宽度200

        # 图文混排和图片尺寸
        item5 = QTableWidgetItem(QIcon('123.jpg'), 'PyQt5')
        tablewidget.setItem(0, 3, item5)

        tablewidget.setRowHeight(0, 200)
        tablewidget.setColumnWidth(4, 200)

        tablewidget.setIconSize(QSize(200, 200))  # 设置图片尺寸
        item6 = QTableWidgetItem()
        item6.setIcon(QIcon('掩码字符.png'))
        tablewidget.setItem(0, 4, item6)

        layout = QHBoxLayout()
        layout.addWidget(tablewidget)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())


相关文章