老猿将QTableWidget表格部件中反映部件当前情况的一些方法归类为部件状态访问方法,包括部件的行数、列数、当前项、当前行、当前列等属性访问方法。

1、行数rowCount

QTableWidget的rowCount属性保存表格部件中的行数,在QTableWidget创建时如果没有指定行数,则缺省行数为0,QTableWidget创建后可以通过 setRowCount方法调整行数。

要获取当前表格部件中的行数,可以通过rowCount()方法获取,要设置表格部件的行数,可以通过setRowCount(int rows)调整表格的行数,如果参数rows小于现在表格中的实际行数,则表格中超出参数的行数数据会丢弃,就算是后面将行数或列数恢复也不能恢复相关数据。

2、列数columnCount

columnCount属性保存表格部件中的列数,相关属性和操作方法和rowCount类似。在QTableWidget创建时如果没有指定列数,则缺省列数为0,QTableWidget创建后可以通过 setColumnCount方法调整。

columnCount可以通过columnCount()方法获取,通过setColumnCount(int columns)设置。

3、当前项访问方法

当前项是指当前鼠标和键盘焦点所在项,在项可以进行选择操作时,当前项可以是选中状态,也可以是未选中状态,选中项也不一定是当前项。与当前项相关的方法包括:

QTableWidgetItem currentItem() :返回当前项对应项对象,如果没有当前项则返回None

setCurrentItem(QTableWidgetItem item):设置当前项

setCurrentItem(QTableWidgetItem item, QItemSelectionModel.SelectionFlags command):设置当前项

setCurrentCell(int row, int column):设置当前项

setCurrentCell(int row, int column, QItemSelectionModel.SelectionFlags command):设置当前项

注意:

后面4个方法都是设置当前项,方法名为setCurrentItem的参数是QTableWidgetItem实例,方法名为setCurrentCell的参数是行和列,即这两类方法依据的项定位方法不同

参数中带command参数的,要求除了将当前项改为参数确认的项之外,还要求有额外的响应,具体响应由command参数确认。关于QItemSelectionModel.SelectionFlags 请参考《PyQt(Python+Qt)学习随笔:Mode/View中的枚举类QItemSelectionModel.SelectionFlag取值及含义》;

设置当前项的方法无返回值,如果设置失败(如指定参数项在部件中不存在)是无法直接判断的,如果设置成功,会触发QTableWidget部件发射信号currentItemChanged和currentCellChanged信号以及currentChanged信号,这三个信号都表示当前项改变了,只是信号签名不一样(关于信号签名请见《PyQt(Python+Qt)学习随笔:信号签名(signature of the signal)是什么?》)。其中前2个信号是表格部件自身的信号,currentChanged信号是表格部件父类QTableView的信号。

如果当前项没有,则currentItem()方法返回None

4、当前行和列访问方法

当前项所在的行和列,既可以通过当前项的QTableWidgetItem实例对象的行号(row()方法)和列号(column()方法)获取,也可以直接通过QTableWidget获取。调用语法如下:

int currentColumn()

int currentRow()

如果部件没有当前项,则上述两个方法返回-1。

老猿Python,跟老猿学Python!

python rowcount_PyQt(Python+Qt)学习随笔:QTableWidget的currentItem、rowCount、columnCount等部件状态属性访问方法...相关推荐

  1. PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性

    accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...

  2. PyQt(Python+Qt)学习随笔:QListView的itemAlignment属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的itemAlignment属性用于控制每个数据项的对齐方式,其类型为枚举类Qt. ...

  3. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  4. Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析

    Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...

  5. Python使用property函数定义属性访问方法如果不定义fget会怎么样?

    我们知道Python使用property函数定义属性访问方法时的语法如下: 实例属性=property(fget=None, fset=None, fdel=None, doc=None) 而是要@p ...

  6. JavaScript学习(六十六)—字符串对象常用的属性和方法总结以及数组元素的排序问题

    JavaScript学习(六十六)-字符串对象常用的属性和方法总结以及数组元素的排序问题 学习内容 一.数组去重问题 二.二维数组的定义 三.二维数组的元素操作 四.二维数组的遍历 五.关联数组 六. ...

  7. Python(Python+Qt)学习随笔:使用xlwings新建Execl文件和sheet的方法

    在<Python学习随笔:使用xlwings读取和操作Execl文件>介绍了使用xlwings读取和操作Execl文件的方法,但老猿这两天写个例子使用时,发现使用该文的方法无法新建EXCE ...

  8. PyQt(Python+Qt)学习随笔:Qt Designer中部件的调色板palette属性和字体font属性设置

    一.调色板 在Qt Designer的部件属性中,有个部件调色板(palette)的属性,进入后,如下图所示: 1.调色板palette Qt中提供的调色板palette用于管理控件的外观显示,对应P ...

  9. PyQt学习随笔:QWidget的QFont的kerning、Antialiasing属性用途

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 引言 在Designer中,QWidget的font属性有两个比较陌生 ...

最新文章

  1. Zookeeper源码分析:集群模式启动概述
  2. 学习Python(一)
  3. django1.4日志模块配置及使用
  4. JavaScript最全的10种跨域共享的方法
  5. 错误 Failed to load module “canberra-gtk-module“ 解决方案
  6. 我的QT4.5编译流水帐(转帖)
  7. 芯片项目谁支持谁负责 重大损失将予以通报
  8. Zabbix2.2.6邮件报警设置方法
  9. echarts柱状图x轴文字纵向显示
  10. 禁止snmpd写入日志到syslog
  11. POJ 1014 Dividing【多重背包+二进制优化】
  12. c++ Dxgi+FFmpeg 完成对截图屏幕,以及将屏幕数据保存为MP4格式,以完成录屏功能
  13. scratch经典游戏主题源码分享,包含了20多款经典游戏
  14. 《嵌入式系统原理与应用》 |(一)嵌入式系统概述 知识梳理
  15. 傅立叶级数与傅里叶变换
  16. Mac查看本地ip地址
  17. css的盒子模型与定位机制解读随记
  18. 日语中的“上手”“下手”是什么意思?
  19. 冯扬文:新冠疫情下国际航运市场趋势分析
  20. 小程序 6位数密码输入

热门文章

  1. nginx 的请求处理、请求的处理流程
  2. Weekly Contest 141
  3. Django Rest Framework -解析器
  4. HDU - 6383 百度之星2018初赛B 1004 p1m2(二分答案)
  5. linkit-smart-7688-feed 安装笔录
  6. CentOS-6.3安装使用MongoDB
  7. 基于sqlite数据库的C语言编程
  8. jQuery---过滤选择器
  9. Python大神告诉你,学习Python应该读哪些书!
  10. Linux负载均衡软件LVS之一(概念篇)