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

pyside6 控件三:自定义表格控件 阅读详情
前言

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信息传递到信号函数中

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

Python_GUI框架 Pyside6的常用部件介绍 以上PySide6中众多部件的一部分,但它们是构建桌面应用程序时最常用的部件,几乎所有的图形化应用都需要它们的组合。我们可以设置滑块的范围、步长、方向等属性,并处理滑块值改变的信号。可以通过添加行和列来定义表格的结构,并通过设置单元格的内容、字体、颜色等来自定义其外观。是一个用于显示文本或图像的部件。我们可以将文本、HTML内容或图像设置为标签的内容,并控制其显示方式(如对齐方式、字体、颜色等)。它是许多桌面应用程序的基础,因为它提供了一个标准的应用程序界面,用户可以通过这个界面与应用程序进行交互。 阅读详情

相关推荐

Pyside6中QTableWidget使用

在 PySide6 中,QTableWidget 是一个用于展示和编辑表格数据的控件。它提供了在窗口中创建和显示表格的功能,并允许用户通过单元格来编辑数据。要使用 QTableWidget,首先需要创建一个 QTableWidget 对象,并设置其行数和列数。可以通过 setRowCount() 和 setColumnCount() 方法来设置行和列的数量。一旦创建了表格,可以使用 setItem() 方法将数据添加到表格的单元格中。

qinshi501的博客 2068

PySide6学习笔记(QTableWidget附案例)

可以通过QHeaderView来调整表格的行/列,每个QHeadView包含1个方向orientation()和N个section(通过count()函数获取N),section表示行/列的一个基本单元,QHeaderView的很多方法都和section相关.可以使用moveSection(from:int,to:int)和resizeSection(logicalIndex:int,size:int)移动和调整行/列的大小。如果不想看到行或列,可以使用hide()函数进行隐藏。

2303_79232676的博客 7365

使用nvm离线安装、管理node多版本以及配置环境变量(亲测)

使用nvm离线安装、管理node多版本以及配置环境变量(亲测)

JMHJAVA的专栏 1338

【Python pyQt5 pySide6】交互MySQL数据在表格中展示【清空数据】【展示数据】【查询模糊数据】

python图形界面对mysql数据库的交互,通过pyQt图形界面和pymysql创建一个查询的文件

m0_56315670的博客 5289

40-基于STM32与LD3320的智能语音调光台灯开发全攻略(代码+硬件+调试心得)

本文详细介绍了基于STM32与LD3320的智能语音调光台灯开发全攻略,包括硬件设计、软件实现和调试心得。项目利用STM32单片机控制LD3320语音识别模块,实现语音控制开关和PWM调光功能,适合非接触式操作场景。文章还分享了硬件选型、PWM调光算法优化及常见问题解决方案,为开发者提供完整参考。

weixin_29163797的博客 325

实战分享:如何用Java调用Doris FE接口实现高效Stream Load数据导入(附完整代码)

本文详细介绍了如何通过Java调用Doris FE接口实现高效的Stream Load数据导入,包含完整代码示例和性能优化技巧。Stream Load作为Doris的高效数据导入方式,相比传统JDBC提升5-10倍速度,适用于大规模数据处理场景,帮助开发者解决高吞吐量数据导入挑战。

weixin_29304985的博客 419

PySide6 Tutorials (二)自定义文字可被复制的弹窗

Pyside6原生弹窗QMessageBox内的文字不可被复制,因此可自定义文字可被复制的弹窗。

GodWriter的博客 524

华为HCIP-001:PPPOE配置模拟实验

华为HCIP01:PPPOE配置模拟实验 实验环境 pppoe-client上面的接口信息 [AR1]dis ip interface brief *down: administratively down ^down: standby (l): loopback (s): spoofing The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 1 Th

兔子乖乖 1800

PySide6 Tutorials (三)鼠标移动控件及其位置更新

网上搜了一圈都是收费文章,什么时候开源精神都已经被xxxx用来中间商赚差价了嘛!别人收费我免费,一起进步才不累!本文为作者原创,转载需注明出处!在graphicview中拖拽控件。出发,与鼠标不处于同一位置。

GodWriter的博客 1251

【AutoDL + Langchain-Chatchat】从零构建高效本地 RAG 知识库问答系统:实战保姆级教程(含避坑指南)

本文详细阐述如何在AutoDL云平台,如何利用Langchain-Chatchat构建高效的本地RAG知识库问答系统,并深入解析RAG架构。从环境搭建到实战部署,从问题排查到性能优化,提供一份全面实用的指南,助力开发者快速构建智能问答应用。

拾光夕拾的博客 1804

Windows Server 2016远程桌面服务配置和授权激活

Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接数,可以通过添加远程桌面授权解决:1、添加远程桌面授权服务第一步:服务器管理 - 添加角色和功能打开添加角色和功能向导窗口,选择基于角色或给予功能安装:第二步:添加远程桌面会话主机和远程桌面授权功能:以上配置完成后即可使用多于2用户同时登陆,但使用期限为120天,再次登陆会有如下提示:2、添...

mahailiang的专栏 6万+

Qt 桌面开发入门:PySide6 学习路线、架构原理与技术选型

本文系统对比了Qt、PySide6与WebView类GUI框架的技术选型,指出PySide6作为Qt官方Python绑定,凭借与Qt 6同步、许可证友好、工具链完整等优势,是Python桌面应用的优选。文章解析了PySide6基于Shiboken6的双向桥接机制,阐明其底层原理,并通过内存占用、启动速度、资源控制等维度对比了Qt与Electron等WebView方案。最后提供分阶段学习路线图,涵盖安装、教程、核心API、工具链及部署,助力开发者高效掌握PySide6。

General_zy的博客 249

AutoSAR配置视频讲解:简介

AutoSAR实验视频讲解:闪烁一颗LED实验【简介】 大家好,欢迎来到雪云飞星的《AutoSAR实验课的视频讲解》专栏。看过《AutoSAR入门到精通系列讲解》的朋友们应该对博主不陌生,有很多朋友加了博主的微信成为了好友,还有朋友约过线下见面,博主很高兴大家能从我的博客中获得一些收获。在专栏里博主挖了很多坑,当时也说过想要录制一个AutoSAR的配置视频教程,素材在20年初就已经录好,中间各种原因足足鸽了一年。当时因为一些技术原因只能通过博客的图文形式展示出来,现在我们剪辑了视频,请了专业的配音,希望以视

雪云飞星的博客 9655

15分钟应用开发教程:用Python快速构建桌面GUI应用

GitHub 加速计划 / 15 / 15-minute-apps项目提供了丰富的Python GUI示例,包含数百个用PyQt构建的小型桌面应用,适合新手快速学习和实践。 ## 为什么选择15分钟应用开发项目? 这个项目最大的优势在于其**简单快速**的开发理念,即使是编程新手也能在短时间内完成一个功能完整的桌面应用。项目支持多种GUI库,包括PyQt6、PySide6、PySide2和Py

gitblog_01050的博客 899

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Qt for python Tutorials【1】

这一部分的文章主要是对QT for python tutorials 这个官方教程的翻译,另外标题不作翻译,方便查找原文。用于学习和记录,方便自己查阅。之前提到在ROS环境下搭建qml写的界面,需要用到这部分知识,所以扒了下官方教程。

qq_22494177的博客 263

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ZetCode, tutorials for programmers

ZetCode, tutorials for programmers ZetCode, tutorials for programmersZetCodeAds Data Recovery Exin Certification Buy Now HTC In...

198

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

手把手Linux安装OpenUSD:从零到跑通usdview的完整配置教程

OpenUSD 是皮克斯开源的 3D 场景描述与交换系统。跟着这份 OpenUSD安装 指南一步步做完,你能在 30 分钟左右得到一个本地可用的 USD 工具链,并用交互式查看器 usdview 打开第一个 3D 场景。 ## 先确认你的环境:OpenUSD 依赖配置 开始之前,花 30 秒检查一下基础依赖。必装和可选的分开看: | 依赖 | 必装/可选 | 为什么需要它 | | --- |

gitblog_00329的博客 211

PyQt - Documentations - Books - Tutorials

PyQt - Documentations - Books - Tutorials https://wiki.python.org/moin/PyQt PyQt is one of the most popular Python bindings for the Qt cross-platform C++ framework. PyQt developed by Riverbank Computing Limited. Qt itself is developed as part of the Qt Pro

程永强 722

OpenUSD 3D 场景描述系统:从构建到 usdview 查看的完整上手指南

Universal Scene Description(OpenUSD)是 Pixar 开源的一套 3D 场景描述系统,解决多个软件之间共享、组合和编辑场景数据的问题。本文带你在自己的机器上把它跑起来。 ## 30 秒认识 OpenUSD - 它是什么:一套可高效读写、流式处理"带时间采样的场景数据"的系统,核心是 C++ 库 + Python 绑定。 - 谁在维护:由 Pixar 主导开发,

gitblog_00015的博客 720

OpenUSD 安装与配置指南:从源码构建到 usdview 验证的完整教程

OpenUSD(Universal Scene Description,通用场景描述)是皮克斯动画工作室开源的跨应用场景数据交换系统,核心解决复杂 3D 场景在 DCC 工具、渲染器与 Web 环境之间的格式统一问题。本教程面向首次接触 OpenUSD 安装的开发者,覆盖依赖清单、环境自检、两条构建路径(构建脚本 / 原生 CMake)和 usdview 最小验证,目标是让你在一小时内跑通 Ope

gitblog_00311的博客 441

零基础OpenUSD速成:5步构建USD并生成你的第一个3D场景

OpenUSD 是皮克斯开源的可扩展场景描述系统,用于协作创作、读取和流式传输时间采样的 3D 场景数据。本文按问答推进,过五个问题:它解决什么痛点、怎么从源码构建、怎么用 7 行 Python 生成球体场景、怎么在 usdview 里预览,以及往哪深入。 ## OpenUSD 解决什么:为什么传统场景格式不够用 多人协作 3D 场景时,OBJ/FBX 这类格式有三个老大难问题: - **改

gitblog_00422的博客 787

3D 场景描述系统 OpenUSD 安装完整指南:3 个阶段跑通 usdview,打开你的第一个 .usda 文件

想象一下:同事发来一个 `Sphere.usda` 文件,你双击它,系统弹出"找不到打开方式"。你其实并不想学一整套图形学理论,只想知道这台机器上能不能把它渲染出来。这背后要装的,就是 OpenUSD——皮克斯开源的 3D 场景描述系统,专门负责在建模、动画、渲染这些软件之间传递带时间轴的三维场景数据。下面这套 OpenUSD 安装流程会带你从一台几乎空白的机器出发,最终用官方查看器 `usdvi

gitblog_00414的博客 16

手把手构建 OpenUSD:5 步跑通 USD 创建-查看-校验链路

你收到一份别人做的 USD 资产,要打开、修改、校验再交付。用官方 OpenUSD 工具链刚好覆盖这条链路:`build_usd.py` 一条命令装好环境,usdview 直接打开场景,命令行工具集负责检查、合成、打包与校验。 ## 5 步装好并构建:从 clone 到 usdview 弹出 **目标只有一个:让 usdview 弹出并显示出示例球体。** 1. 确认系统有 C++ 编译器(

gitblog_00012的博客 434

如何从0安装OpenUSD:三步快速构建并预览你的第一个3D场景

OpenUSD(Universal Scene Description)是皮克斯开源的 3D 场景描述与交换系统,用一套统一的格式和 API 解决"建模、灯光、动画、渲染多个软件各存各的私有格式、数据来回转换丢信息"的痛点。本文带你先在本地把它跑起来,再用跑出来的结果理解它的核心机制,最后给出真实场景用法与常见坑的解法。 ## 第一章 先跑起来:最小安装步骤 ### 环境要求 编译 USD

gitblog_00894的博客 433
上一篇: Linux下conda断网离线创建虚拟环境
下一篇: PySide6 Tutorials (二)自定义文字可被复制的弹窗
GodWriter
博客等级 码龄11年 94粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值