在QTableWidget对项的操作支持选中多个项的情况下,可以通过方法selectedRanges返回选中矩形的列表,通过方法setRangeSelected将指定矩形范围的项选中或去选中。相关方法调用语法如下:

  • list[QTableWidgetSelectionRange] selectedRanges()
  • setRangeSelected( QTableWidgetSelectionRange range, bool select)

注:

案例:

为了说明矩形内的项是逻辑项连续,我们来看一个案例:



上图中的行3和行4通过如下语句交互了可见位置,同时设定选择范围为(1,1)->(2,2):

self.tableWidget.verticalHeader().moveSection(3,2) #将第4行移动到第3行
rect = QtWidgets.QTableWidgetSelectionRange(1, 1, 2, 2) #定义矩形范围为逻辑行为1,列为1(即第二行第二列)到第3逻辑行3逻辑列的项
self.tableWidget.setRangeSelected(rect, True)

通过范围选择后,选中的范围从界面上看却不是连续的,但实际上逻辑项是连续的。

我们通过如下语句输出选中范围:

 def showSelectRect(self):
selectRect = self.tableWidget.selectedRanges()
for r in selectRect:
print(f'({r.topRow()},{r.leftColumn()})-->({r.bottomRow()},{r.rightColumn()})')

针对上图输出的信息如下:

(1,1)-->(2,2)

如果针对上图通过鼠标改变选中范围,如图:



界面上看起来可见项是连续的,输出矩形选中范围结果如下:

(1,1)-->(1,2)
(3,1)-->(3,2)

显示为两个矩形,不是连续的范围。

老猿Python,跟老猿学Python!

PyQt学习随笔:QTableWidget的selectedRanges、setRangeSelected访问选中矩形范围的方法的更多相关文章

  1. PyQt学习随笔:ListView控件获取当前选择项的方法

    通过currentIndex()可以获取listView控件的当前选择元素,如果选择了多个,则可以通过selectedIndexes()来获取选择的元素,不过这两个函数返回的是元素数据,而不是索引编号 ...

  2. PyQt学习随笔:Model/View中TableView视图数据项编辑结果及视图数据项的访问

    按照<PyQt学习随笔:Model/View中设置视图数据项可编辑的方法>的方法支持视图数据可编辑后,编辑后的数据无需主动保存,PyQt会自动将界面变更的数据保存到对应的Model存储中, ...

  3. PyQt学习随笔:Model/View开发时从Model相关类派生自定义类需要注意的问题

    在<PyQt学习随笔:重写setData方法截获Model/View中视图数据项编辑的注意事项>介绍的方法,从Model相关类派生自定义类,通过重写setData方法以获取View中数据的 ...

  4. PyQt学习随笔:Model/View架构中多个视图之间选择数据项同步

    我们知道多个视图之间通过使用相同的model就可以实现数据的共享(具体请参考< PyQt学习随笔:ListView控件的视图和数据模型分离案例>),除了数据的共享之外,多个视图之间还可以同 ...

  5. PyQt学习随笔:Model和View之间的数据互动过程

    在<PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系>中介绍了,Model用于存储数据,View用于展 ...

  6. PyQt学习随笔:Qt Designer调用帮助时报错找不到assistant.exe文件的解决办法

    老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信 ...

  7. PyQt学习随笔:Model/View开发时在view数据项中设置不同角色数据的方法

    在往Model中通过QStandardItem等类插入数据项时,除了实际插入的存储数据,还可以设置不同角色(请参考<PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及 ...

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

    根据<PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法>可以重写从PyQt的Model类继承的setData方法来实时截获View中对数据的更改,但需要注意 ...

  9. PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消息

    PyQt程序通过调用QApplication类的exec_()(sys.exit(app.exec_()) 进入程序主循环,开始处理事件,它从事件队列中获取本地窗口系统事件,将它们转化为 QEvent ...

随机推荐

  1. python代码实现抢票助手

    一. 代码使用Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互. 二. 安装好Python 3或2都可以 ...

  2. 小规模DES手写加解密

    1.加密 2.解密

  3. 070_GUI编程

    目录 简介 图形用户界面 Graphical User Interface,简称 GUI,又称图形用户接口 GUI核心技术:Swing AWT 不再流行的原因 为什么学习 AWT AWT(Abstra ...

  4. 内网渗透 day2-nmap和nc的使用

    nmap和nc的使用 nmap的使用 1. nmap -sSV 172.16.100.214 -T4 -F -sS进行SYN扫描,是比较隐匿的 -sV探测打开端口的服务的信息 -sSV将上面两种一起使 ...

  5. 生活tips_织毛衣

    生梨润肺化痰好,苹果止泻营养高. 黄瓜减肥有成效,抑制癌症猕猴桃. 番茄补血助容颜,莲藕除烦解酒妙. 橘子理气好化痰,韭菜补肾暖膝腰. 萝卜消食除胀气,芹菜能治血压高. 白菜利尿排毒素,菜花常吃癌症少 ...

  6. JAVA基础之接口与内部类

    接口与内部类 目录 接口与内部类 1. Lambda表达式 1. 关于懒计算 2. Predicate接口 3. 关于方法引用 4. 关于构造器引用 5. 关于变量的作用域 2. 内部类 1. 局部内 ...

  7. orphan sockets

    orphan sockets 介绍一下什么是 orphan sockets,简单来说就是该 socket 不与任何一个文件描述符相关联.例如,当应用调用 close() 关闭一个链接时,此时该 soc ...

  8. 四、API Gateway相关------微服务构架设计模式

  9. linux命令查看日志

    首先介绍几个日志查看种常用的简单命令: 1.tail tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件. tail -f filename 会把 filenam ...

  10. git-关联远程git仓库详细步骤-2

    1.打开git bash,在控制台中输入以下命令:ssh-keygen -t rsa -C "邮箱地址" 结果: fanxi@AT8350 MINGW64 ~$ ssh-keyge ...