PyQt(Python+Qt)学习随笔:QTableWidgetItem项数据的data和setData访问方法

2023-10-26

QTableWidget部件中的QTableWidgetItem项数据可以通过项的data( int role) 方法获取项中指定列指定角色的数据,也可以通过setData(int role, QVariant value)方法设置指定角色的数据为value。例如项的文本可以通过data方法和setData方法使用Qt.DisplayRole、Qt.EditRole这两种角色去访问。

关于数据的角色请参考《PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及含义》。

注意:
  • role虽然是整数,但实际上是枚举类型 Qt.ItemDataRole,关于及取值及含义请参考
  • QVariant 表示任何PyQt的数据类型,所以value的类型没有约束
  • 关于Qt.DisplayRole、Qt.EditRole二者大多数情况下是一致的,有种说法是只有当显示的数据是内部数据进行转换后展示时会有所不同,例如性别数据可能是0和1,显示为男和女,这种情况下就会不同,但关于这点的使用上老猿还没有研究清楚,因为通过PyQt内置的便利类和Model/View标准类使用时,发现无论是读取数据还是设置数据,二者的效果相同,因此老猿估计可能在从PyQt提供的内置类去派生类时可能有用。老猿验证,在派生类中重新实现setData方法时,要获取用户在界面上修改的编辑数据,只能通过Qt.EditRole角色,Qt.DisplayRole取不到修改的数据。
示例代码:
    def initItems(self):
        print(self.tableWidget.rowCount(),self.tableWidget.columnCount())
        self.tableWidget.setRowCount(3
        self.tableWidget.setColumnCount(3)
        print(self.tableWidget.rowCount(), self.tableWidget.columnCount())
        for row in range(3):
            for col in range(3):
                item  = QtWidgets.QTableWidgetItem(f"({row},{col})")
                self.tableWidget.setItem(row,col,item)
                item.setData(QtCore.Qt.DecorationRole,QtGui.QIcon('.\\icon\\'+str(row+1)+'.gif'))#设置图标
                item.setData(QtCore.Qt.CheckStateRole, row%3) #设置复选状态
                item.setData(QtCore.Qt.TextAlignmentRole,col % 3)  #设置文本对齐方式
        print(self.tableWidget.rowCount(), self.tableWidget.columnCount())
        item = QtWidgets.QTableWidgetItem(f"({row},{col})")
        self.tableWidget.setVerticalHeaderLabels(['行1','行2','行3'])
        self.tableWidget.setHorizontalHeaderLabels(['列1','列2','列3'])
运行后界面:

在这里插入图片描述

老猿Python,跟老猿学Python!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt(Python+Qt)学习随笔:QTableWidgetItem项数据的data和setData访问方法 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • Python:在列表理解本身中引用列表理解?

    这个想法刚刚出现在我的脑海中 假设您出于某种原因想要通过 Python 中的列表理解来获取列表的唯一元素 i if i in created comprehension else 0 for i in 1 2 1 2 3 1 2 0 0 3
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di

随机推荐

  • 【ROS】RViz、Gazebo和Navigation的关系

    1 RViz RViz Robot Visualization 机器人可视化 是一个用于可视化机器人系统的开源工具 用于显示和调试机器人的传感器数据 状态信息和运动规划等 它是ROS Robot Operating System 的一部分
  • /c6.e3b.biz/index.php,iptv-m3u-maker/tv.m3u8 at d59f4e688e2b4486d6219f094aac886be53c25d2 · srsman/ip...

    EXTINF 1 group title 其他频道 Oxigeno90 http i50 letio com 9102 aac EXTINF 1 group title 其他频道 ProyectoP http 149 56 23 143 8
  • Linux如何用命令创建文件和文件夹

    linux中如何使用命令创建文件 并执行 1 通过快捷方式 CTRL ALT T键 打开终端命令窗口 我们在终端实现操作 ccoy ccoy PC 2 进入目录之后 转到需要的目录之下 ccoy ccoy PC cd demo ccoy c
  • 价值32k!阿里顶级架构师深度解析SpringBoot进阶原理实战手册

    前言 在当下的互联网应用中 业务体系日益复杂 业务功能也在不断地变化 以典型的电商类应用为例 其背后的业务功能复杂度以及快速迭代要求的开发速度 与5年前的同类业务系统相比 面临着诸多新的挑战 这些挑战中核心的一点就是快速高效地实现系统功能
  • win7访问局域网计算机提示凭据,win7系统访问局域网共享文件时提示输入网络凭据的解决方法?...

    win7系统访问局域网共享文件时提示输入网络凭据的解决方法 最近有用户在将系统升级到win7系统之后 访问局域网共享文件时 系统却弹出输入网络凭据的对话框 这让用户很苦恼 其实这是微软为win7系统添加了新的安全机制导致的 没有密码的访问形
  • 基于STM32的ESP8266天气时钟(1)---------AT指令获取天气数据

    前言 很久以前就想着能够做一个可以显示天气还有时间的小东西 刚好最近有空 研究了一下 发现并没有之前想象的那么难 网上也有很多资料 不过大部分并没有一步一步详细介绍 故把自己的学习过程分享出来 算是自己的输出 也给需要学习的小伙伴提供一下思
  • Vue3的数据监视(Watch)

    引入 vue 的数据监视可以进行数据检测但是要进行数据的引入 import watch from vue 参数配置 一共分为三个参数配置分别为 数据 执行方法 执行条件 watch gt dog age newValue oldValue
  • 问题解决: multiple definition of XXX

    在编译程序的时候 遇到了一个问题 花点时间记录一下 在Qt中创建一个类后 一般是先在 h文件中声明变量与函数 然后在对应的 cpp文件中对各个函数进行定义 这在往常使用中没有任何问题 今天在使用Qt时 在各 cpp源文件编译时出现了许多mu
  • 【满分】【华为OD机试真题2023B卷 JAVA&JS】寻找最大价值的矿堆

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 寻找最大价值的矿堆 知识点广搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 给你一个由 0 空地 1 银矿 2 金矿 组成的的地图 矿堆只能由上下左右相邻的金矿或银
  • 今天写shader流光效果,shader代码少了个括号,unity shader compiler卡死且不提示原因...

    今天写shader流光效果 shader代码少了个括号 unity shader compiler卡死且不提示原因 好在找到了原因 shader 代码如下 原理是提高经过的颜色亮度 void surf Input IN inout Surf
  • stm32实现PWM最简单方法

    stm32实现PWM最简单方法 前言 一 PWM概念 二 PWM应用 输出比较功能框图 三 PWM呼吸灯实现 前言 PWM可以用于控制灯的亮度电机转速等 本文以实现呼吸灯为例帮助理解pwm的应用 一 PWM概念 PWM Pulse Widt
  • Android手机可信引导解决方案

    1 概述 Android手机的可信引导过程 主要分为三部分 lk的可信 boot的可信 和system的可信 系统上电到lk的启动过程验证 因为和硬件联系紧密 基本都由各自硬件厂商完成 lk就是bootloader 它由Pre loader
  • 软件设计师——项目管理

    文章目录 Gantt图与Pert图 风险管理 配置管理 沟通管理 题目举例 Gantt图与Pert图 甘特图能够清晰描述每个任务的开始 结束时间及各任务之间的并行性 也可以动态地反映项目的开发进展情况 但难以反映多个任务之间存在的逻辑关系
  • LeetCode 728. 自除数

    题目链接 728 自除数 数据范围小 暴力枚举就可以 class Solution public bool check int x int n x while n int t n 10 if t 0 x t 0 return false n
  • 高可用containerd搭建K8s集群【v1.25】

    toc 一 安装要求 在开始之前 部署Kubernetes集群机器需要满足以下几个条件 一台或多台机器 操作系统 CentOS7 x 86 x64 硬件配置 2GB或更多RAM 2个CPU或更多CPU 硬盘30GB或更多 集群中所有机器之间
  • (转)JAVA常见异常

    0 需要标识符 a 不在函数内 1 非法表达式开始 b 可能 丢失括号 2 no data found a 可能 setInt 1 100 中 没有100这个值 3 找不到符号 a 可能 没导入包 4 指定了无效URL a 可能 数据库名或
  • 区块链中的密码学

    在比特币区块链的整个体系中 大量使用了公开的加密算法 比如Merkle Tree哈希树算法 椭圆曲线算法 SHA 256哈希算法 对称加密算法以及一些编码算法 如Base58编码 VarInt编码 DER编码等 下面我们来了解其中的几个核心
  • 致信登录显示服务器连接不成功,致信服务器怎么设置

    致信服务器怎么设置 内容精选 换一换 华为云主机迁移服务帮助中心 为用户提供产品简介 快速入门 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用主机迁移服务 将文件上传至Linux服务器一般会采用WinSCP
  • 改进后基于数组的Java银行案例

    无目录 用户class public class User private String cardNo private String identity private String userName private String passw
  • PyQt(Python+Qt)学习随笔:QTableWidgetItem项数据的data和setData访问方法

    老猿Python博文目录 专栏 使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget部件中的QTableWidgetItem项数据可以通过项的data int role 方法获取项中指定列指定角色的数