PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及含义

python3+PyQt5自定义视图详解 pyqt提供的几个视图类都可以较好工作,包括QLisView,QTableView和QTreeView。但是对于一些难以用现有的方式来呈现数据,这时,可以创建我们自己的视图子类并将其用做模型数据的可视化来解决这一问题。本文通过Python3+pyqt5实现了python Qt GUI 快速编程的16章的例子。 #!/usr/bin/env python3 import gzip import os import platform import sys 阅读详情

在PyQt中,模型可以针对不同的组件(或者组件的不同部分,比如存储数据、界面展示数据、按钮的提示等)提供不同的数据。例如,Qt.DisplayRole用于视图的文本显示。通常来说,模型中的数据项包含一系列不同的数据角色,数据角色定义在 Qt.ItemDataRole 枚举中,老猿掌握的包括下列枚举值:
Qt.DisplayRole:文本表格中要渲染显示的数据,当存储的内部字典值要显示为可理解的文字含义数据时对应数据与实际存储数据会不一致
Qt.EditRole:编辑器中正在编辑的数据,老猿认为这也应该是实际存储的数据
Qt.ToolTipRole:数据项的工具提示的显示数据
Qt.WhatsThisRole:项为"What’s This?"模式显示的数据
Qt.DecorationRole:数据被渲染为图标等装饰(数据为QColor/ QIcon/ QPixmap类型)
Qt.StatusTipRole:数据显示在状态栏中(数据为str类型)
Qt.SizeHintRole:数据项的大小提示,将会应用到视图(数据为str类型)
Qt.CheckStateRole:数据项前面的checkbox选择状态,当数据项构建时使用了setCheckable(True)时会发生作用
Qt.TextAlignmentRole:数据项对齐方式,当设置了数据项的对齐格式时有效

几个常量的值:
Qt.DisplayRole=0
Qt.DecorationRole=1
Qt.EditRole=2
Qt.ToolTipRole=3
Qt.StatusTipRole=4
Qt.WhatsThisRole=5
Qt.TextAlignmentRole=7
Qt.CheckStateRole=10
Qt.SizeHintRole=13

通过为每一个角色提供恰当的数据,模型可以告诉视图和委托如何向用户显示内容。不同类型的视图可以选择忽略自己不需要的数据,也可以添加所需要的额外数据


博客地址:https://blog.youkuaiyun.com/LaoYuanPython

老猿Python博客文章目录:https://blog.youkuaiyun.com/LaoYuanPython/article/details/98245036

qt model 中的角色 role Qt::CheckStateRole角色 model中的每一个数据元素都有一个modelIndex和一套角色role。 model中的角色,role有多个,但是常用的就几个。 这些角色可以保存任意值,角色中可用保持QVariant类型的值。 最常用的是Qt::DisplayRole和Qt::EditRole角色。 这两个角色是用于显示和编辑的角色。 还有几个常用的角色是用来控制 基本显示属性的。 比如: Qt: 阅读详情

相关推荐

QT学习笔记(6):列表控件

(1)QListWidget:负责以列表形式显示数据,其中数据称为item,每个item至少包括图标,文本和关联数据。           添加项:ListWidget 的 addItem()函数 / insertItem()函数           示例:ui.listWidget->addItem(new QListWidgetItem( icon1,"xxxx"));

xuzheng11332的博客 5074

QT模型视图MVC系列教程(4)---角色role的使用(Qt::DisplayRole 类型)

模型正在维护的数据,不仅是视图中所看到的那些,还有很多数据在视图是被隐藏的,你看不到,不代表他没有,比如,一个列表视图中,不仅会显示文字,文字前可能还会显示一个图标。 其实,每一个条目,所包含的内容,不仅有文字、图标,还有很多,到底有哪些呢,看一下枚举Qt::DisplayRole 就知道了,在QT5.10中,有22个,以后随着QT版本更新,这个值可能会变化。 当视图View向模型Model索要数据时,不仅要提供索引 index,还必须要提供角色role。index和role共同决定出视图到底在向Mod

野生猿-群号1025127672 1万+

精通QTableView:数据角色role的详细解读与应用

QTableView是Qt框架中一个功能强大的组件,用于展示和编辑表格数据。它利用接口与数据模型进行交互,通过角色(roles)提供数据和信息,实现了丰富的数据可视化功能。从简单的文本显示到复杂的自定义绘制,QTableView提供了灵活的定制能力。以下是QTableView功能的几个关键点:数据展示:可以展示任何类型的二维数据集,无论是静态数据还是动态实时更新的数据。用户交互:支持行和列的选择、编辑、排序和过滤等用户操作。

weixin_35749545的博客 1150

Qt模型视图框架介绍

默认情况下,所有标准视图都会构建自己的选择模型。费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击。费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击。

hw5230的博客 912

Hi3516CV610开发板ISP调优实战——从在线调试到参数固化部署全流程

本文详细介绍了Hi3516CV610开发板ISP参数从在线调试到固化部署的全流程。针对调试参数重启丢失的痛点,重点解析了如何从PQTools安全导出参数、进行格式转换与适配,并通过烧录工具或系统更新两种路径将参数永久固化至Flash。最后提供了双重验证与常见问题排查方法,确保调优效果在产品中稳定生效。

weixin_29169505的博客 426

Response Instance 详解:在 ABAP OData Client Proxy 中读懂每一次响应

ABAP OData Client Proxy中的Response Instance是关键信息载体,封装了业务数据及调用上下文(如分页、delta link等)。响应实例在执行请求后自动生成,根据请求类型返回特定接口(如READ返回/IWBEP/IF_CP_RESPONSE_READ)。响应抽象与OData版本解耦,支持统一处理V2/V4服务。常见响应类型包括单实体读取、列表读取(支持分页和增量同步)、创建/更新/删除响应等。开发时可通过响应对象的安全类型方法获取数据,如get_business_data获

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 137

Qt Model/View 编程深度解析报告

本文介绍了Qt框架中的Model/View架构,该架构通过分离数据与视图解决了传统GUI开发中的数据冗余和同步问题。文章首先分析了传统基于项控件的局限性,指出其数据耦合导致的维护成本上升。随后阐述了Model/View对MVC模式的改进,合并视图和控制器角色并引入委托机制,形成了Model/View/Delegate范式。 核心内容围绕三大组件展开: 模型作为数据抽象层,通过QAbstractItemModel标准接口统一访问各类数据源,提供QAbstractListModel和QAbstractTable

greenspan的专栏 2180

基于Simulink的柔性关节人形机器人振动抑制控制仿真

本文完成了基于Simulink的柔性关节人形机器人振动抑制控制仿真,实现了:✅ 建立二质量柔性关节动力学模型✅ 设计加速度反馈主动阻尼控制器✅ 对比陷波滤波与状态反馈效果✅ 验证大幅运动下的快速振动衰减能力✅ 为高动态人形机器人操作(如击掌、搬运)提供平滑执行基础。

xiaoheshang_123的博客 130

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

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget部件中的QTableWidgetItem项数据可以通过项的data( int role) 方法获取项中指定列指定角色的数据,也可以通过setData(int role, QVariant value)方法设置指定角色的数据为value。例如项的文本可以通过data方法和s...

老猿Python 1万+

18|AI 辅助精准测试:让平台会解释、会总结、会推荐

本文介绍 AI 在精准测试平台中的落地方式,包括变更摘要、风险解释、补测建议和报告总结。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。从报告中提取变更文件、未覆盖行、推荐用例。拼成结构化 JSON。让 AI 生成 200 字质量摘要。把摘要展示在报告顶部。读完本文后,可以复制下面的 Prompt,让 AI 生成一个报告总结练习。你是一名 AI 应用开发专家和测试架构师。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 55

SAP_MM模块库存概览俄罗斯报表简介

本文介绍了SAP MM模块中"库存概览俄罗斯报表"的功能与应用。该报表主要用于查看物料在不同库存地点和类型的库存情况,并满足俄罗斯当地法规要求。文章解释了"俄罗斯报表"可能指代本地化合规库存报表或客户自定义报表,详细说明了事务代码J3RFLVMOBVEDH的操作步骤,包括公司代码、物料编码、日期范围等查询条件,并解释了报表中各字段含义如期初期末库存数量与价值。最后强调在物料分类账处理完成后使用该报表可获得实际库存价值,为SAP用户提供了实用的库存管理参考。

我小时候很黑的博客 1088

Pyqt5 Model/view框架 3.可编辑项

Pyqt5 Model/view框架 3.可编辑项 https://www.cnblogs.com/hangxin1940/archive/2012/12/07/2806450.html # -*- coding: utf-8 -*- import sys import sys from PyQt5.QtWidgets import QWidget, QToolTip, QApplication from PyQt5.QtGui import QFont from PyQt5.QtWidgets impo

abc 764

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1321

C++/Qt酒店管理系统实战:从MVC架构到SQLite分页的完整开发指南

在桌面应用开发领域,MVC(Model-View-Controller)架构是组织代码、分离关注点的经典设计模式,它能有效提升软件的可维护性和可扩展性。其核心原理在于将数据模型、用户界面和控制逻辑分层解耦,通过信号与槽等机制进行通信。这种架构在需要处理复杂业务逻辑和数据持久化的企业级信息管理系统中尤为关键,例如酒店、库存或客户关系管理系统。结合SQLite这类轻量级嵌入式数据库,开发者可以构建出部署简单、性能高效的独立应用程序。本文将深入探讨如何在一个真实的酒店管理系统项目中落地MVC架构,并解决**分页表

weixin_30457551的博客 366

【YoloV11改进策略】基于流形约束超连接(mHC)增强YoloV11全局特征提取能力|独家复现|梁文峰署名论文

论文标题:流形约束超连接 (Manifold-Constrained Hyper-Connections, mHC)核心问题:针对超连接 (Hyper-Connections, HC) 扩展残差流宽度时破坏恒等映射、引发训练不稳定性和高内存开销的问题,提出一种约束性框架。目标:恢复残差连接的稳定性与可扩展性,同时保持HC的性能增益。基准模型:基于DeepSeek-V3的MoE架构,进行了3B、9B、27B模型的实验验证。论文图示mHC 是一个通用的HC扩展框架。

m0_47867638的博客 1349

基于STM32+OneNet设计的物联网智慧路灯(100)

本次设计的智能路灯采用STM32芯片和OneNet物联网平台进行连接,开发出支持太阳能充电锂电池供电、GPS定位上传位置信息、手动/自动控制路灯开关、环境光照调节、红外传感器检测周围人员、空气质量监测等多项功能。同时,当路灯发生异常情况时,系统可以自动发送邮件或短信到指定邮箱或电话。

7727

QT TableView

#include //代理类,把所有单元格中的字符居中显示 class VIPModel : public QStandardItemModel { Q_OBJECT public: VIPModel(QObject *parent=NULL) : QStandardItemModel(parent) { } VIPModel(int row, int

huangli19870217的专栏 1881

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Qt学习笔记(六)项视图类

许多应用程序允许用户搜索、查看和编辑属于某个数据集中的一些个别项。这些数据可能保存在文件中、数据库中或者网络服务器上。处理像这样的数据集的标准方式是使用Qt的项视图类(item view class) Smalltalk语言普及了一种非常灵活的对于大数据集的可视化方法:模型-视图-控制器(Model-View-Contorller, MVC)。在MVC方法中,Model代表数据集,它对需要查看数

Crazy Tortoise 6903

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PyQt学习随笔:重写setData方法截获Model/View中视图数据项编辑的注意事项

根据《PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法》可以重写从PyQt的Model类继承的setData方法来实时截获View中对数据的更改,但需要注意,setData方法调用不光发生在View中实际存储的内部数据修改,也可能是其他与数据相关的属性或值调整,如数据项的checked变化,数据的对齐风格变化等。 因此如果应用需要响应数据的变化实时做出反应而重写se...

老猿Python 2649

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Qt知识回顾(十五)——模型/视图编程

  应用程序中往往要存储大量的数据,并对他们进行处理,然后可以通过各种形式显示给用户,用户需要时还可以对数据进行编辑。Qt中的模型/视图架构就是用来实现大量数据的存储、处理及其显示的。 模 型 / 视 图 框 架   MVC(Model-View-Controller)是一种起源于Smalltalk的设计模式,经常用于创建用户界面。MVC包含了3个组件,模型(Model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;控制(controller),定义了用户界面对用户输入的反应方式

AAAA202012的博客 1371

初识QT(四十二)——Qt自定义对话框及调用方法

在一个应用程序设计中,为了实现一些特定的功能,必领设计自定义对话框。 自定义对话框的设计一般从 QDialog 继承,并且可以采用UI设计器可视化地设计对话框。对话框的调用一般包括创建对话框、传递数据给对话框、显示对话框获取输入、判断对话框单击按钮的返回类型、获取对话框输入数据等过程。 本节将通过实例 samp6_2 来详细介绍这些原理。图 1 是实例 samp6_2 的主窗口,及其设置表格行列数...

图像学习之旅 3041

qt中的ItemDataRole中的相关说明

以下部分内容摘抄博客:https://blog.csdn.net/weixin_38516302/article/details/107243292 https://blog.csdn.net/fanyun_01/article/details/78640277 ItemDataRole包含的Role: DisplayRole :主要用于以文本的形式显示数据。 EditRole:可用于文本数据的编辑。 DecorationRole:可以将数据通过图标的方式呈现出来。 ToolTipRole :实

Littlehero_121的博客 2690

Qt学习笔记[11]

1. QStringListModel QStringListModel主要用于处理字符串序列,一般与QListView联用。 setStringList(const QStringList &strs): 初始化QStringListModel setModel(): 把数据模型关联到视图组件上 setEditTriggers(): 设置视图组件是否可编辑(该方法不属于QStringListModel) removeRows: 删除多行 rowCount(): 获取数据模型.

輚至消亡 1913

QAbstractTableModel的sort方法实现排序

如果不想实现QabstractTableModel可编辑功能, 则调用QTableView ->setEditTriggers(QAbstractItemView::NoEditTriggers)即可.//设置每个单元格的flag,对于可编辑模型,必须重写它,添加Qt::ItemIsEditable(可编辑属性)

wisdomroc的博客 2226

Qt的Model/View结构

Model/View结构 将界面组件与所编辑的数据分离开来,又通过数据源的方式连接起来,是处理界面与数据的一种较好的方式。Qt使用Model/View结构来处理这种关系,Model/View的基本结构如图5-1所示。其中各部分的功能如下。 图1 Model/View基本结构(来自Qt帮助文件) 别人写的哪些都特别的麻烦,都不知道要讲什么意思,简单点讲。就是用了Model/View结构之后,我修改了界面上的数据就是同步修改了我Model中的数据,就是两者的数据是同步的。如果我们没有使用Model/View的

simple_core的博客 1808

python pyqt6单窗口多界面实现

python pyqt6 单窗口多界面的简单实现demo

qq_63871792的博客 5255
上一篇: PyQt学习随笔:Qt中Model/View中的Model Index
下一篇: PyQt学习随笔:Model/View架构中的Delegate(委托、代理)
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值