PyQt(Python+Qt)学习随笔:基于项的项部件(Item Widgets(Item-Based))概述
Model/View架构中的视图部件是基于模型的项视图(Item Views(Model-Based)),要求使用视图的应用必须自己创建模型,管理模型中的数据项,这种方式应用实现起来稍微有点复杂,为此在PyQt和Qt中提供了基于项的项部件(Item Widgets(Item-Based)),包括列表部件(List Widget)、树部件(Tree Widget)、表部件(Table Widget),它们对应的类分别是QListWidget、QTreeWidget、QTableWidget。这三个类严格意义上说也是Model/View架构的一部分。
列表部件、树部件、表部件这三个对应的类QListWidget、QTreeWidget、QTableWidget是从基于模型的项视图对应类QLIstView、QTreeView、QTableView派生出来的便利类。QListWidget提供项列表,QTreeWidget显示多级树结构,QTableWidget提供表格式的数据项管理。
这些便利类在基于模型的项视图基础上,实现了项选择和标题管理的通用功能。每个便利类都有许多基于项的特性,这些特性通过每个类中的相同接口来使用。包括:
- 隐藏项
有时可以在项目视图部件中隐藏项目,而不是删除它们。列表部件、树部件、表部件的项都可以隐藏起来,可以通过调用isItemHidden() 方法确定项是否隐藏,也可以使用setItemHidden()隐藏项。由于相关操作是基于项的,因此三个便利类都可以使用相同的函数。 - 选择
选择项的方式由便利类的选择模式(继承自QAbstractItemView的SelectionMode属性)控制。此属性控制用户是否可以选择一个或多个项目,以及在多个项目选择中,选择是否必须是一个连续的项目范围。选择模式对上述所有便利类的工作方式相同。关于选择模式请参考《PyQt(Python+Qt)学习随笔:QAbstractItemView的selectionMode属性》的介绍。
在便利类中可以使用selectedItems()方法来通过迭代方法读取部件中被选中的项。 - 搜索
无论是作为开发人员还是作为向用户提供服务,能够在项视图部件中搜索项是常用的功能。所有三个项目视图便利类都提供了一个公共的findItems()方法用于搜索项。根据从Qt.MatchFlags中选择的值指定的条件,通过包含的文本搜索项。我们可以使用findItems()函数获取匹配项的列表。
关于Qt.MatchFlags请参考《PyQt(Python+Qt)学习随笔:Model/View中的枚举类 Qt.MatchFlag的取值及含义》。 - 项初始化
QListWidget、 QTableWidget和QTreeWidget中的项在拖放处理上都进行了一些初始化设置,如QListWidget的QListWidgetItem项 、QTreeWidget中的QTreeWidgetItem项初始化时,enabled、 checkable、selectable和使用作为拖放源上都是为True,而QTableWidget中的QTableWidgetItem项被初始化为可编辑和接受拖放数据操作。
实际上,上述初始化可以在Qt Designer中进行调整。

老猿Python,跟老猿学Python!
PyQt(Python+Qt)学习随笔:基于项的项部件(Item Widgets(Item-Based))概述的更多相关文章
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性
老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖 ...
- PyQt(Python+Qt)学习随笔:视图中的拖放操作注意事项
老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt) ...
- PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性不能覆盖写的问题
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dra ...
- PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系&g ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>中,老猿觉得dragE ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性
autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性
accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的toolTip、toolTipDuration、statusTip、whatsThis属性
toolTip属性 toolTip属性设置部件的toolTip提示信息,toolTip提示信息在鼠标放到控件上会浮动出一个小框显示提示信息.默认情况下,仅显示活动窗口子部件的toolTip,可以通过在 ...
- PyQt(Python+Qt)学习随笔:部件的大小策略sizePolicy的含义
在Qt Designer中的每个部件,除了设置部件的位置(geometry)之外,还可以指定部件的大小策略sizePolicy.部件的sizePolicy用于说明部件在布局管理中的缩放方式,当部件没有 ...
随机推荐
- kudu集群:kudu_master、kudu_tserver服务及数据的迁移(根据官网总结)
是不是都需要一个声明,来一个: 声明: 本文只是总结本人本地模拟环境测试,并没有经过严格的线上测试.请自己在本地严格测试之后慎重使用在生产环境! kudu_master.kudu_tserver服务迁 ...
- 3.4 spring5源码系列--循环依赖的设计思想
前面已经写了关于三篇循环依赖的文章, 这是一个总结篇 第一篇: 3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖 第二篇: 3.2spring源码系列----循环依赖源 ...
- 关于Wrapper Class
public class RunTest{ public static void main(String[] args) { Integer ten=new Integer(10); Long nin ...
- ECMAScript6标准-简介
Introduction This Ecma Standard defines the ECMAScript 2015 Language. It is the sixth edition of the ...
- acm一些小细节/技巧
以后没有终止信号的输入统一用 : while(cin>>a) { ... } "1" 不是质数, 要注意. 当需要把一个数组中的数值初始化成正无穷时,为了避免加法算术 ...
- binary hacks读数笔记(装载)
1.地址空间 在linux系统中,每个进程拥有自己独立的虚拟地址空间,这个虚拟地址空间的大小是由计算机硬件决定的,具体地说,是由CPU的位数决定的.比如,32位硬件平台决定的虚拟地址空间大小:0--2 ...
- openwrt——preinit.sh学习
boot_hook_init() { local hook="${1}_hook" export -n "PI_STACK_LIST=${PI_STACK_LIST:+$ ...
- Python面试题_中级版
Python 面试题 1.Python是如何进行内存管理的 对象引用机制.垃圾回收机制.内存池机制 1.1对象引用机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引 ...
- 被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?
一:背景 1. 讲故事 前几天公号里有一位朋友留言说,你windbg玩的溜,能帮我分析下被 ThreadStatic 修饰的变量到底存放在哪里吗?能不能帮我挖出来,其实这个问题问的挺深的,玩高级语言的 ...
- 如何用Vegas完成视频编辑中的自动跟踪换图
Vegas作为一款专业的视频剪辑软件,剪辑速度快捷,拥有各种实用工具和特效,同样也可以为用户实现视频换图的需求.今天小编就为大家讲解,如何利用Vegas自动跟踪进行换图,让视频能够更加便捷的呈现. 本 ...