使用表微件显示数据-列表QTableWidget

使用表微件显示数据-列表

如果要显示排列在表中的数据,请使用 QTableWidget执行此操作,而无需处理太多配置。

请注意,使用 QTableWidget不是在表中显示信息的唯一路径。您还可以创建数据模型并使用 QTableView来显示它,但这不在本教程的讨论范围内。

# 导入 、 和 显示背景颜色:QTableWidgetQTableWidgetItemQColor
import sys
from PySide6.QtGui import QColor
from PySide6.QtWidgets import (QApplication, QTableWidget,
                               QTableWidgetItem)

# 创建一个简单的数据模型,其中包含不同颜色的名称和十六进制代码列表:
colors = [("Red", "#FF0000"),
          ("Green", "#00FF00"),
          ("Blue", "#0000FF"),
          ("Black", "#000000"),
          ("White", "#FFFFFF"),
          ("Electric Green", "#41CD52"),
          ("Dark Blue", "#222840"),
          ("Yellow", "#F9E56d")
          ]

# 定义一个函数以将十六进制代码转换为 RGB 等效代码:
def get_rgb_from_hex(code):
    code_hex = code.replace("#", "")
    rgb = tuple(int(code_hex[i:i+2], 16) for i in (0, 2, 4))   # int(a[0:2], 16)  将16进制转换为十进制
    return QColor.fromRgb(rgb[0], rgb[1], rgb[2]), rgb[0], rgb[1], rgb[2]

# 初始化单例:QApplication
app = QApplication()

# 将 配置为具有与结构中的项数相等的行数,以及具有一个颜色条目的成员加一个的列数。您可以使用如下所述设置列名称:QTableWidgetcolorssetHorizontalHeaderLabels
table = QTableWidget()
table.setRowCount(len(colors))  # 行数
table.setColumnCount(len(colors[0]) + 2)  # 列数 使用+2的原因是为了包含两个新列,我们可以在其中显示颜色和颜色的RGB值。
table.setHorizontalHeaderLabels(["Name", "Hex Code", "Color", "RGB"])  # 列的名称

# 迭代数据结构,创建实例QTableWidgetItems,并使用坐标将它们添加到表中。在这里x,y,数据是逐行分配的:
for i, (name, code) in enumerate(colors):
    item_name = QTableWidgetItem(name)
    item_code = QTableWidgetItem(code)
    item_color = QTableWidgetItem()
    item_color.setBackground(get_rgb_from_hex(code)[0])
    item_RGB = QTableWidgetItem(str((get_rgb_from_hex(code)[1:])))

    table.setItem(i, 0, item_name)
    table.setItem(i, 1, item_code)
    table.setItem(i, 2, item_color)
    table.setItem(i, 3, item_RGB)
# 显示表并执行 .QApplication
table.show()
sys.exit(app.exec())

最终应用程序将如下所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值