PyQt5中向单元格添加控件

在PyQt5中,我们应如何向QTableWidget中的单元格添加控件呢?在本讲中给出了几个示例( 解释附在代码中)

setItem:将文本放到单元格中
setCellWidget:将控件放到单元格中
setStyleSheet:设置控件的样式(Qt StyleSheet)

import sys

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class PlaceControlInCell(QWidget):
    def __init__(self):
        super(PlaceControlInCell, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("在单元格中放置控件")
        self.resize(430, 300)
        layout = QHBoxLayout()
        tableWidget = QTableWidget()

        # 指定行列数
        tableWidget.setRowCount(4)
        tableWidget.setColumnCount(3)

        layout.addWidget(tableWidget)

        tableWidget.setHorizontalHeaderLabels(['姓名', '性别', '年龄'])

        # 创建单元格文本
        textItem = QTableWidgetItem("老王")
        tableWidget.setItem(0, 0, textItem)

        # 创建下拉控件
        combox = QComboBox()
        combox.addItem("男")
        combox.addItem("女")

        # QSS Qt StyleSheet
        combox.setStyleSheet('QComboBox{margin:3px}')

        # 向QTableWidget添加控件
        tableWidget.setCellWidget(0, 1, combox)

        button = QPushButton("修改")

        # 设置默认为按下的状态
        button.setDown(True)
        button.setStyleSheet('QPushButton{margin:3px}')
        tableWidget.setCellWidget(0, 2, button)

        self.setLayout(layout)



if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = PlaceControlInCell()
    main.show()
    sys.exit(app.exec_())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值