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

qt setData()和data() 简述 在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来自配置文件、注册表、数据库、或者是Server。 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被用到,例如:单击一个用户头像,显示该用户的详细信息(等级、昵称、姓名、个人说明)。     常见接口 Qt中,可以通过绝大部分已有的接口来存数数据、获取数据。例如: 存储数据 ... 阅读详情

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!

关于QTreeWidget的setData函数 阅读详情

相关推荐

PyQt5入门指南:从环境搭建到界面开发与打包部署

图形用户界面(GUI)是连接用户与程序逻辑的桥梁,其核心在于将复杂的操作封装为直观的交互元素,如按钮和文本框,从而提升软件的易用性和专业性。在Python生态中,PyQt5作为Qt框架的Python绑定,凭借其强大的功能、跨平台特性和与操作系统的深度集成,成为开发专业级桌面应用的首选。它基于信号与槽的通信机制,实现了界面与业务逻辑的高效解耦,并通过布局管理器、丰富的控件库以及样式表(QSS),支持开发者构建规整、美观且响应迅速的界面。对于涉及数据处理或网络请求的耗时任务,PyQt5的多线程支持能有效防止界面

weixin_33766168的博客 354

详解 QTableWidgetItem::setData()

setData()是的核心方法,用于设置表格项的各种数据。配合不同的角色(如),可以实现显示与逻辑分离、样式控制等功能。在复杂表格应用中,setData()与data()的结合使用可以显著提高数据操作的灵活性和效率。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 1945

基于PyQt5与周立功CAN库开发定制化CAN总线监控分析工具

CAN总线作为汽车电子与工业控制领域的核心通信协议,其调试与数据分析常需依赖上位机软件。通用工具虽功能齐全,但在自定义解析、多源数据联动等场景下灵活性不足。通过Python生态中的PyQt5 GUI框架,开发者可快速构建跨平台桌面应用,并结合ctypes库调用硬件厂商提供的动态链接库(DLL),实现与物理总线的可靠通信。这种技术组合不仅提升了开发效率,还便于集成Pandas、Matplotlib等数据分析与可视化组件,为实时监控、信号解析与数据回放提供了强大支持。本文聚焦于使用PyQt5封装周立功Contr

weixin_33908217的博客 393

Qt中setData()和data()用法

简述 最近在一个项目要到了setData()和data() 常见接口 1、**setdata()**存储数据 2、**data()**取出数据 单独存储 1、通过setData(),我们可以单独存储用户数据,使用Qt::UserRole、Qt::UserRole + 1.。。。。 QListWidget *pListWidget = new QListWidget(this); int i = 0; for(int j = 0; j < 5; ++j ) { QListWidgetItem *pI

qq_41377460的博客 1万+

PyQt学习笔记:用data和setData方法访问QTableWidgetItem项的数据

在PyQt中,QTableWidget控件是一个常用的表格控件,而QTableWidgetItem则是控件中的一种项,它包含了表格中每个单元格的数据。在插入数据时,我们调用了QTableWidgetItem的setData方法,将数据绑定到每个item上,并设置了item的文本。然后,我们通过调用QTableWidget的item方法,获取第一个单元格的数据,并打印出来。可以看到,在获取数据时,我们又使用了QTableWidgetItem的data方法来访问item中的数据。

code_welike的博客 1034

QCC5125/QCC5144----LDAC 44.1K 48K 96K 192K 输出

QCC5125/QCC5144----LDAC 44.1K 48K 96K 192K 输出。而且还不需要license限制。

Alex_886的博客 1975

QTableWidget表头排序实战:从原理到踩坑全解析

在桌面端表格开发中,数据展示与交互排序是绕不开的基础能力。QTableWidget作为Qt提供的高效表格组件,凭借其Item-Based的便捷封装,成为快速实现数据管理、报表系统等场景的首选。表头排序看似简单,实则涉及数据类型规划、比较规则定制、控件同步与性能优化等多个关键技术点。默认的字符串比较往往导致数字、日期列排序混乱,理解Qt排序执行链路并合理利用UserRole、自定义QTableWidgetItem等机制,才能实现真正可控的排序逻辑。同时,排序开启后带来的行号索引变化、下拉框错位等工程问题,也需

weixin_34267123的博客 363

Java开发者必看:Apache PDFBox实现PDF数字签名完整指南(附源码)

本文为Java开发者提供了使用Apache PDFBox实现PDF数字签名的完整指南。详细介绍了从环境配置、核心原理到完整代码实现的全过程,涵盖证书管理、签名位置计算、性能优化及实际应用案例,并附有可直接复用的源码,帮助开发者高效集成PDF数字签名功能。

o1p2q3r的博客 340

PyQt5桌面应用开发实战:浏览器多开软件列表显示设置功能实现

在桌面应用开发中,数据展示与用户交互是核心环节。通过模型-视图-控制器(MVC)架构,开发者可以将数据逻辑与界面呈现分离,实现灵活可控的界面管理。其技术价值在于提升应用的专业性和用户体验,尤其在需要管理大量并行任务或数据条目的场景下,如自动化测试、多账号操作或系统监控工具。本文以Python PyQt5框架为基础,结合数据绑定与JSON配置持久化,详细解析了如何为自制浏览器多开软件实现可自定义的列表显示设置功能,涵盖列定义、排序规则与视图样式的动态配置,为构建可配置化GUI应用提供了完整的实战方案。

weixin_30751947的博客 377

[cryoEM] cryoSPARC简介

cryoSPARC系统结构概述 cryoSPARC是一个后端和前端高性能计算软件系统,为单颗粒冷冻电镜提供数据处理和图像分析能力,以及丰富的基于浏览器的用户截面和命令行工具。 Master-worker模式 系统基于主用户模式。 主进程(web应用,核心应用程序和MongoDB数据库)一起在主节点上运行。主节点需要相对轻量级的资源(2+ CPU< 16GB+ RAM)。 工作程序进程可以在具有GPU的任何可用节点上生成,负责所有实际计算和数据处理,并由主节点调度。注意:同一节点可以同时充当主节点和辅

进阶中的程序员吃吃的博客 7797

1、Ovirt 开源虚拟化平台安装

Ovirt虚拟化Node和Engine安装

大鱼 6266

PyQt5实现浏览器多开管理器:自定义列表显示与配置持久化

在桌面应用开发中,配置管理和用户界面定制是提升软件可用性的关键技术。其原理在于通过数据模型抽象用户偏好,并利用持久化存储(如INI、JSON文件)实现设置的跨会话保存。这项技术的价值在于赋予用户对信息呈现方式的控制权,从而显著提升多任务场景下的管理效率。典型的应用场景包括需要管理大量条目的工具软件,例如本文探讨的浏览器多开管理器。通过PyQt5框架,开发者可以构建动态的表格视图,让用户自由选择显示列、调整排序规则及外观样式,实现精细化的列表显示设置。这种实践不仅优化了用户体验,也体现了模块化设计和配置驱动的

weixin_30730053的博客 420

将物理信息神经网络(PINN)应用于微通道湍流的拓扑优化,并结合COMSOL数据进行训练与快速预测

本文提出一种基于物理信息神经网络(PINN)的微通道散热器流场快速预测方法。通过有限组COMSOL仿真数据训练神经网络,结合Navier-Stokes方程和能量方程作为物理约束,构建可快速预测新拓扑结构下速度场和温度场的替代模型。该方法包含数据准备、网络构建、损失函数设计等关键步骤,利用自动微分计算方程残差,显著降低传统CFD优化的计算成本,实现秒级/分钟级的流场预测,为微通道散热器拓扑优化提供高效解决方案。

huanghm88的专栏 536

YOLOX+LPRNet车牌识别实战:边缘部署与PyQt5低延迟系统

车牌识别是智能交通与安防系统的核心基础能力,其本质是小目标检测与受限字符序列识别的结合问题。技术原理上需兼顾高鲁棒性检测(应对强光、雨雾、运动模糊等干扰)与轻量级端到端识别(适配固定宽高比、抗反光粘连)。YOLOX凭借解耦检测头和Anchor-Free回归,在边缘设备实现高精度低延迟;LPRNet则以64×20极窄输入与CTC序列建模,专为车牌字符分布特性优化,显著优于通用OCR。该技术方案已广泛应用于停车场、园区闸口等实时性敏感场景,支持USB/RTSP多源视频接入、ONNX模型跨平台部署及PyQt5多线

weixin_34319111的博客 171

Flink实战案例(十三):Flink DataStream 八大分区策略与自定义分区器

声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 分区策略决定了一条数据如何发送给下游。Flink中默认提供了八大分区策略(也叫分区器)。 本文基于Flink 1.9.0总结Flink DataStream中的八大分区策略以及手动实现一个自定义分区器。 八大分区策略继承关系图 ChannelSelector: 接口,决定将记录写入哪个Channel。有3个方法: void setup(int numberOfChannels):

微信搜:import_bigdata,大数据领域硬核原创作者 1124

基于 Logistic 混沌映射和 Arnold 变换 的变换域水印改进算法【高级网络与信息安全技术-信息隐藏期末课程论文】

摘要:\textbf{摘要:}摘要:本文提出了一种新的水印算法是一种图像认证的新方法。算法首先使用Logistic混沌映射加密水印图像,然后使用Arnold变换置乱水印。同时改变了水印图像的像素位置和像素值,大大提高了算法的安全性。再使用DCT变换嵌入水印,并且结合人类视觉系统的特点来提升水印嵌入的透明性。实验结果表明,本文提出的水印算法可以大幅度提高水印嵌入的透明性与安全性的同时,并不降低算法的鲁棒性。注:完整的代码和论文在文末,百度网盘链接。

zik的博客 893

QTableWidget

学习PyQt推荐大家看这本书:https://weread.qq.com/web/reader/6393267071ccfa97639f573 import sys from PyQt5.QtWidgets import (QApplication,QMainWindow,QLabel,QTableWidgetItem,QAbstractItemView) from enum import Enum from PyQt5 import QtCore from PyQt5.QtCore import.

salmonwilliam的博客 577

Pytorch中安装 torch_geometric 详细图文操作(全)

如果已经安装了pytorch版本,对应跳过步骤一,直接安装步骤二即可注意:依赖包的配置需要根据pytorch版本号以及cuda的版本号,版本号要适配,否则部分函数无法使用。

码农研究僧的博客 3447

基于Windows底层API的网络端口扫描与安全监控系统设计与实现

PortSentinel:基于Windows IPHelper API的轻量级端口扫描与安全监控工具 摘要 随着网络威胁的演进,开放端口成为勒索病毒(如WannaCry利用445端口)和远程漏洞(如BlueKeep攻击3389端口)的主要入侵途径。针对现有工具(如Nmap命令行复杂、netstat功能单一、商业方案成本高)的不足,本文设计并实现了PortSentinel —一款面向Windows平台的轻量化安全工具。

donoot的博客 506

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

常见界面设计组件————QTableWidget的使用

QTableWidget概述 QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget组件后,可以在Property Editor里对其属性进行编辑,双击这个组件,可以打开一个编辑器,对其Colum、Row和Item进行编辑。一个QTableWidget的基本结构如图所示: 表格的第一行通常称为表头,用于设置每一列的标题, 第一列称为列表头,可以设置其标题,但...

Wanggj的博客 7320

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Qt::QString::number()设置小数保存位数,QTableWidgetItem 取出 自定义data

1、QString::number设置小数保存位数 原型: 可指定格式和保存精度 例如: QString::number(strDouble, 'f', 4);//保存为浮点型,4位小数 格式有以下几种: 2、QTableWidgetItem 使用 setData 保存自定义数据并取出 setData()方法原型: 使用示例: MyClass myClass; QTableWidgetItem * item = new QTableWidgetItem(myCl..

kllo__的博客 5093

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

[QT_010]Qt学习之QTableWidgetItem详解

Qt学习之QTableWidgetItem详解

kongcheng253的博客 1万+

qt data和setData

Qt

weixin_52153356的博客 1471

QT:QTableWidgetItem 支持的数据类型

QTableWidgetItem 支持通过和方法来存储和检索自定义数据。这里的QVariant是一个通用的数据类型容器,可以存储多种类型的数据,包括但不限于整数、浮点数、字符串、日期等。role参数用于指定数据的角色,Qt 预定义了一些标准角色(如等),同时也允许用户定义自定义角色来存储额外的数据。

程序猿视角 1065

Qt学习-15 <setData() & data()>

setData() & data()

Gnar_w的博客 1185
上一篇: PyQt(Python+Qt)学习随笔:QTableWidgetItem的位置相关方法
下一篇: PyQt(Python+Qt)学习随笔:QTableWidgetItem项文本和项对齐的setText、setTextAlignment方法
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 2
成就一亿技术人!
拼手气红包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、付费专栏及课程。

余额充值