PyQt5之表格控件QTableWidget使用详解 - 创建、布局、设置表格高度、宽度、表头等各种样式及表格数据的填写与改动的接收

PyQt表格控件一共有两个,一个是QTableView,另一个是QTableWidget,这两个控件是PyQt的核心之一,也是最常用的控件。

一、类归属与继承关系

其中QTableWidget继承自QTableView,基类归属与继续关系如下:

(一)类归属

PyQt5->QtWidgets->QTableWidget

PyQt5->QtWidgets->QTableWidgetItem

(二)继承关系

二、表格创建

QTableWidget表格的创建非常简单,只需要一个语句即可。

table_widget = QTableWidget()    # 建立QTableWidget对象

三、表格样式设置

(一)设置表格列宽

下面是自适应列宽的设置一些设置方法:

1. 单独设置某一列自适应列宽

table_widget.resizeColumnToContents(0)    # 单独设置某一列为自动列宽

2. 全部自适应列宽

table_widget.resizeColumnsToContents()   # 设置表格自动列宽

使用该指令后效果:

3. 自定义列宽(强制每列宽度)

table_widget.setColumnWidth(4, 60)

或者

table_widget.setColumnWidths([100, 150])  # 设置第0列和第1列列宽为100,150

这是先使用自动列宽,后自定义第4列(列表从0开始计数)的结果。

4. 两表列宽跟随

(1)静态跟随(程序启动时两表宽度一致)

如果上下两个表,想要使

  • 11
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要实现QTableWidget表格的自动拉伸和按比例设置宽度,可以结合使用setSizePolicy函数和setColumnWidth函数。 首先,使用setSizePolicy函数将QTableWidget设置为自动拉伸的大小策略,以便它可以根据父容器的大小自动调整大小。然后,根据比例设置每列的宽度。 下面是一个示例代码,演示如何实现QTableWidget表格的自动拉伸和按比例设置宽度: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QHeaderView from PyQt5.QtCore import Qt import sys if __name__ == '__main__': app = QApplication(sys.argv) # 创建一个QTableWidget tableWidget = QTableWidget() # 设置表格的行数和列数 tableWidget.setRowCount(3) tableWidget.setColumnCount(4) # 设置表格的自动拉伸策略 tableWidget.setSizePolicy(QHeaderView.Stretch, QHeaderView.Stretch) # 列宽比例列表 column_ratios = [1, 2, 3, 4] # 获取表格宽度 table_width = tableWidget.viewport().width() # 计算每列的实际宽度 column_widths = [int(table_width * ratio / sum(column_ratios)) for ratio in column_ratios] # 设置每列的宽度 for i, width in enumerate(column_widths): tableWidget.setColumnWidth(i, width) # 添加表格内容 for row in range(tableWidget.rowCount()): for col in range(tableWidget.columnCount()): item = QTableWidgetItem(f'Row {row}, Col {col}') tableWidget.setItem(row, col, item) # 设置表格的水平拉伸策略 tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 显示表格 tableWidget.show() sys.exit(app.exec_()) ``` 在上面的示例中,我们首先使用setSizePolicy函数将QTableWidget的大小策略设置为QHeaderView.Stretch,以便它可以自动拉伸。 然后,我们定义了一个包含4个元素的列宽比例列表,表示每列的宽度所占比例。 接下来,我们通过获取表格宽度使用viewport().width()方法),计算每列的实际宽度,并使用setColumnWidth函数设置每列的宽度。 最后,我们使用horizontalHeader().setSectionResizeMode函数将表格的水平拉伸策略设置为QHeaderView.Stretch,以便表格可以根据窗口的大小自动调整列宽。 请根据你的实际需求修改示例代码中的表格行数、列数、列宽比例和表格内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃饭的家伙事儿

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值