PySide6 Tutorials (一)表格小部件魔改

news2025/4/8 9:08:53
前言

Pyside6官方教程给了一个使用表格显示颜色的教程,原教程地址如下:源地址, 结合前面button信号的学习,就魔改添加了如下功能:增加一列按钮,可以修改该行的颜色值,通过点击按钮生成指定的颜色背景。

代码如下
import sys
from functools import partial
from PySide6.QtGui import QColor
from PySide6.QtWidgets import QApplication, QTableWidget, QPushButton, QTableWidgetItem


colors = [("Red", "#FF0000"),
          ("Green", "#00FF00"),
          ("Blue", "#0000FF"),
          ("Black", "#000000"),
          ("White", "#FFFFFF"),
          ("Electric Green", "#41CD52"),
          ("Dark Blue", "#222840"),
          ("Yellow", "#F9E56d")]


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))
    return QColor.fromRgb(rgb[0], rgb[1], rgb[2])


def change_background(button):
    row = button.property("row")
    col = button.property("col")

    if row is not None and col is not None:
        item_color = QTableWidgetItem()
        text = get_rgb_from_hex(table.item(row, 1).text())
        item_color.setBackground(text)
        table.setItem(row, 2, item_color)


app = QApplication()
table = QTableWidget()
table.setRowCount(len(colors))
table.setColumnCount(len(colors[0]) + 2)
table.setHorizontalHeaderLabels(["Name", "Hex Code", "Color", "Change"])

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))
    table.setItem(i, 0, item_name)
    table.setItem(i, 1, item_code)
    table.setItem(i, 2, item_color)

    button = QPushButton("Click me!")
    button.setProperty("row", i)
    button.setProperty("col", 3)
    button.clicked.connect(partial(change_background, button))

    table.setCellWidget(i, 3, button)


table.show()
table.resize(600, 800)
sys.exit(app.exec())

效果如下图

效果图

涉及知识点
  • 如何获取表格中button所在的行列信息
  • 如何将button信息传递到信号函数中

注:本文为作者原创,转载需注明出处!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1232804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue中Slot的使用指南

目录 前言 什么是slot? 单个slot的使用 具名slot的使用 作用域插槽 总结 前言 在Vue中,slot是一种非常强大和灵活的功能,它允许你在组件模板中预留出一个或多个"插槽",然后在使用这个组件的时候动态地填充内容。这…

.skip() 和 .only() 的使用

.skip() 和 .only() 的使用 说明 在做自动化测试中,跳过执行某些测试用例,或只运行某些指定的测试用例,这种情况是很常见的Cypress中也提供了这种功能 如何跳过测试用例 通过describe.skip() 或者 context.skip() 来跳过不需要执行的测试…

如何解决requests库自动确定认证arded 类型

requests 库是一种非常强大的爬虫工具,可以用于快速构建高效和稳定的网络爬虫程序。对于经常使用爬虫IP用来网站爬虫反爬策略的我来说,下面遇到的问题应当值得我们思考一番。 问题背景 在使用requests库进行网络请求时,有时会遇到需要对目标服务进行认证…

人工智能基础_机器学习044_使用逻辑回归模型计算逻辑回归概率_以及_逻辑回归代码实现与手动计算概率对比---人工智能工作笔记0084

上面我们已经把逻辑回归的公式,以及,公式对应的图形都画画出来了,然后我们再来看看 如何用代码实现 可以看到上面是代码,咱们自己去写一下 import numpy as np from sklearn.linear_model import LogistieRegression from sklearn import datasets # 训练数据和测试数据拆分…

系列十三、分支合并框架

一、概述 Fork:把一个复杂任务进行分拆,大事化小,Join:把分拆任务的结果进行合并 二、相关类 2.1、ForkJoinPool 分支合并池,类比线程池。 2.2、ForkJoinTask ForkJoinTask,类比 FutureTask。 2.3、Recur…

FTX的前世今生:崛起、辉煌与崩塌

FTX,一度被誉为加密货币领域的明星交易所,其快速的崛起和令人瞩目的崩塌吸引了全球的关注。让我们回顾一下FTX的前世今生,了解其短暂的辉煌和骤然的崩塌。 1. 崛起: FTX的创始人山姆班克曼-弗里德在加密货币领域具有深厚的背景和…

Java Swing实现员工工资管理系统(含教程) 可带数据库 Java课程设计

7. 员工工资管理系统 视频教程: 【课程设计】员工工资管理系统-Java Swing-你的课程我设计 功能描述: 系统员工有"工号"、 “姓名”、“性别”、“岗位”、 "入职年份 "、"密码"等属性; 员工使用工号密码登录…

纯CSS实现炫酷文本时钟

如图所示这是一个纯本文时钟效果,和传统的时钟不一样,没有表盘,也没有完整到每一分钟的数字表示当前时刻。 在这个时钟中,当前时间通过文本显示,显示的文本时间误差为+/- 4分钟,以明亮的颜色突出显示当前时间,而其余字母则较暗。 实际上这是一个实现很复杂的时钟,因为…

国产低功耗Sub-1G全频段收发一体芯片DP4306遥控器、智能抄表、工业控制等应用。

国产低功耗Sub-1G全频段收发一体芯片DP4306遥控器、智能抄表、工业控制等应用。 DP4306芯片是一款高性能低功耗的单片集成收发机,工作频率可覆盖 200MHz~1000MHz,芯片集成了射频接收器、射频发射器、频率综合器、GFSK 调制器、GFSK 解调器等功能模块。通…

各类Linux操作系统如何选择?

各类Linux操作系统如何选择? 企业级应用:RHEL/CentOS 桌面平台:Ubuntu 开源服务器:CentOS 1.1 RedHart 1.1.1RHEL RHEL是指Red Hat Enterprise Linux,是由Red Hat公司开发和维护的一款商业Linux操作系统。它是基于…

一整个分析模型库,大数据分析工具都这么玩了吗?

一整个分析模型库,100张BI报表,覆盖销售、财务、采购、库存等多个分析主题。只需对接ERP,就能自动生成BI报表,完成对海量数据的系统化分析。现在大数据分析工具都发展到这种程度了吗? 放眼看去,现阶段能做…

GitLab的个人仓库转移到团队仓库

文章目录 一、Gitlab权限二、转移2.1、编辑个人仓库2.2、Transfer project2.3、切换Namespace2.4、确认修改 一、Gitlab权限 Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner Guest:可以创建issue、发表评论,不能读写…

Day01 嵌入式 -----流水灯

一、简单介绍 嵌入式系统中的流水灯是一种常见的示例项目,通常用于演示嵌入式系统的基本功能和控制能力。流水灯由多个发光二极管(LED)组成,这些LED按照一定的顺序依次点亮和熄灭,形成一种像水流一样的流动效果。 二、…

软件测试/测试开发/人工智能丨​Python运算符解析,小白也能轻松get

什么是运算符 运算符是用于进行各种运算操作的符号或关键词。 在数学和计算机编程中,运算符被用来表示不同的运算操作,例如加法、减法、乘法、除法等。 比如: 4 5,其中,4和5为操作数,为运算符。a 10,…

印刷企业实施MES管理系统需要哪些硬件设施

随着科技的飞速发展,印刷行业正面临着前所未有的挑战和机遇。为了提高生产效率,降低成本,并增强市场竞争力,越来越多的印刷企业开始实施制造执行系统(MES)管理系统。本文将重点讨论印刷企业在实施MES管理系…

FFmpeg常用命令行讲解及实战一

文章目录 前言一、学习资料参考二、FFmpeg 选项1、主要选项①、主要命令选项②、举例 2、视频选项①、主要命令选项②、举例1)提取固定帧2)禁止输出视频3)指定视频的纵横比 3、音频选项①、主要命令选项②、举例 4、字幕选项①、主要命令选项…

基于 Glibc 版本升级的 DolphinDB 数据查询性能优化实践

在高并发查询、查询需要涉及很多个分区的情况下,低版本的 glibc(低于2.23)会严重影响查询性能。需要升级 glibc 解决该问题优化性能。我们撰写了本文,通过 patchelf 工具修改可执行文件和动态库的 rpath,达到无需升级系…

抖音如何推广引流?抖音推广引流的经验与工具分享

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 一、了解抖音推广的价值 抖音作为一款热门的短视频应用,拥有庞大的用户群体和强大的传播力。通过抖音推广,企业或个人可以在短时间内获得大量的曝光和流量&…

基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)

原论文链接->DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Based on Deformable Convolution and Attention Mechanism | IEEE Journals & Magazine | IEEE Xplore DCAM-Net: A Rapid Detection Network for Strip Steel Surface Defects Base…

2023最新国内外项目进度管理软件排行榜(推荐)

介绍8款优秀的在线项目管理软件,其中进度猫、Trello、Clarizen、Asana、MeisterTask、ClickUp和Wrike都是以甘特图为核心进行项目管理,而monday则是低代码项目管理软件,提供一站式的工作记录和管理。这些软件都可以帮助项目经理更有效地管理项…