🌟想系统化学习 GUI 编程?看看这个:[Python GUI 编程] PySide & PyQt - 学习手册-CSDN博客
在上一节中我们介绍了如何使用 QTableWidget 创建一个基础的表格,并设置表格的展示规则。在实战中,我们经常需要给表格设置一些复杂的样式,比如下拉列表控件呀,比如选择控件呀,那么本节,笔者就教你如何把控件放到 QTableWidget 的表格中。
在开始本节的学习之前建议读者还是重温一下上一小节的内容:
0x01:QTableWidget 单元格放置控件 — 流程解析
将大象放进冰箱一共需要几步?首先你得有一个大象,其次,你得有一个冰箱,然后你还得将冰箱门打开,让大象进去。
QTableWidget 单元格放置控件与上面的流程一致:
-
你得有一个大象 => 你得有一个控件对象。
-
你得有一个冰箱 => 你得有一个 QTableWidget 表格控件。
-
你得将大象装进冰箱 => 你得把控件通过
setCellWidget(int 行, int 列, 控件对象)
方式装进 QTableWidget 表格控件的指定单元格中。 -
你得有个放冰箱的地方 => 你得把表格展示出来,这样控件才会跟着展示。
上面流程的 1, 2, 4 点,在 QTableWidget 的基础使用中我们已经讲解过了,所以我们直接奔着第三点去。
0x02:QTableWidget 单元格方式控件 — 示例代码
在下面这个示例中,我们创建了一个复选框对象,并将其添加到了表格控件的(0, 0)表格中:
import sys
from PyQt5.Qt import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.resize(900, 600)
self.setupUI()
def setupUI(self):
# 初始化表格控件
tableWidget = QTableWidget()
tableWidget.setColumnCount(3)
tableWidget.setRowCount(4)
# 创建复选框对象
checkBox = QCheckBox()
# 将复选框对象添加到表格控件中
tableWidget.setCellWidget(0, 0, checkBox)
# 展示表格控件
layout = QHBoxLayout()
layout.addWidget(tableWidget)
self.setLayout(layout)
if __name__ == '__main__':
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 控件操作
window = MyWindow()
# 3. 展示控件
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())