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


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

1.基本概念

  • 学习QTableWidget单元格添加控件与单元格设置,内容包含对QTableWidget单元格的设置、文本内容的设置和图片的插入等内容。

2.代码

点击查看代码
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) :
        # 1.创建QTableWidget
        tablewidget = QTableWidget()
        tablewidget.setRowCount(4)
        tablewidget.setColumnCount(5)

        # 2.数据源
        tablewidget.setHorizontalHeaderLabels(['序号', '姓名', '性别'])

        # 3.插入数据
        item1 = QTableWidgetItem('张三')
        tablewidget.setItem(0, 1, item1)

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

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

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

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

        # 5.搜索数据
        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('站酷酷黑', 10, QFont.Black)) #设置字体
            item.setTextAlignment(Qt.AlignRight | Qt.AlignBottom)  # 设置文本对齐方式

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

        # 7.设置单元格尺寸
        # # tablewidget.setRowHeight(1, 60)  # 第二行高度60
        # # tablewidget.setColumnWidth(0, 200)  # 第1行宽度200
        #
        # 8.图文混排和图片尺寸
        item5 = QTableWidgetItem(QIcon('aaa.png'), 'PyQt5')
        tablewidget.setItem(0, 3, item5)
        # tablewidget.setIconSize(QSize(200, 200))  # 设置图片尺寸
        # 8.1 插入图片
        item6 = QTableWidgetItem()
        item6.setIcon(QIcon('y.png'))
        tablewidget.setItem(0, 4, item6)
        
        # 9.展示列表
        layout = QHBoxLayout()
        layout.addWidget(tablewidget)
        self.setLayout(layout)


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

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

3.效果


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM