使用QListWidget QListWidget提供一些方便的信号来响应用户输入。...最重要的是currentItemChanged信号,它是当用户改变选择的项目时发出;它连接的槽接收两个参数,current和previous,表示现在和之前选择的QListWidgetItem项。...同样它也有对应的信号,当用户单击、双击、激活或按下一个项、改变选择的项目集时。...因为这里的项非常简单,足以用QListWidgetItem来创建,我们将从QListWidget继承。 第一步,我们需要知道安装的版本都支持什么类型的图片,这样我们的列表控件才能辨别什么是合法的图片。...它有两个参数,curr和prev,分别表示当前选定的项和上一个选定的项。
— QListWidget 1.1 基本概念 当一个数据有多个时,将数据以列表的形式来显示,使用QListWidget,但是,该列表控件只负责显示,致于列表的内容是什么,它并不关心,比如:字符串,单一控件..., QListWidget *parent = nullptr, int type = Type)//创建一个条目项对象,并指定该条目项的内容和图标 QListWidgetItem(const QString...&text, QListWidget *parent = nullptr, int type = Type) //创建一个条目项对象,并指定该条目项的内容 QListWidgetItem(QListWidget...* currentItem() const// 用户当前选中的列表条目 int currentRow() const// 用户当前选中的列表条目行号,行号是从零开始 案例:基本增加条目的使用方法...*item)//双击条目时,控件会发送该信号 当用户在代码中,建立与该信号相关的槽函数时,那么信号触发时,就会执行槽函数
以下是概述: 获取所有项数量: 使用 ui->listWidget->count() 获取列表框中的项的数量。 循环设置状态: 使用 for 循环遍历每个项,获取当前项的句柄。...该槽函数的作用是将列表框中的所有项的状态设置为可编辑,这样用户可以在运行时修改这些项的文本内容。...设置为选中状态: 使用 setCheckState 方法将每个项的状态设置为选中状态,即勾选复选框。 该槽函数的作用是实现一个全选按钮,方便用户一次性选中所有列表框中的项。...设置为非选中状态: 使用 setCheckState 方法将每个项的状态设置为非选中状态,即取消勾选复选框。 该槽函数的作用是实现一个全不选按钮,方便用户一次性取消选中列表框中的所有项。...该槽函数的作用是实现一个反选按钮,方便用户一次性反转列表框中的所有项的选中状态。
(包括隐藏的项). 4.void setViewMode(QListView::); //设置QListWidget对象的显示模式.默认是列表模式....clear(); //清空QListWidget对象的所有内容....,QT列表控件,与QListView控件类似。...QListWidget是一个方便的类,它提供了类似于QlistView所具有的列表视图,但是具有增加和删除的功能。QListWidget使用内部模型来管理列表中的每个QListWidgetItem。...比如音乐播放器的列表,用户需要增加一首歌曲到列表,那用这种方法最简单。
目录 1、QTableView类 2、QListView类 3、QListWidet类 4、QTableWidget类 5、QTreeWidget和QTreeWidgetltem类 ---- 表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据...1、QTableView类 在通常情况下,一个应用需要和一批数据(比如数组、列表)进行交互,然后以表格的形式输出这些信息,这时就要用到QTableView类了。...信号与自定义对象的clicked()槽函数进行绑定,当单击QListView控件里Model中的一项时会弹出消息框(提示选择的是哪─项)。...列表中的每个条目都是一个QListWidgetltem对象。QListWidget可以设置为多重选择。...控件的itemClicked信号与自定义对象的Clicked()槽函数进行绑定,当单击QListWidget列表中的一个条目时会弹出消息框,提示选择的是哪个条目。
前言 在 Qt GUI 开发中,当需要展示批量数据或对控件进行分组管理时,单纯的基础控件已无法满足需求。...多元素控件:聚焦 “数据展示与交互”,支持批量数据的添加、删除、选中、排序等操作,是处理集合数据的核心工具; 容器类控件:聚焦 “界面组织与分组”,通过分组、分页等方式优化界面布局,提升用户体验和界面整洁度...) 二、多元素控件:批量数据的高效展示与交互 多元素控件的核心优势是 “批量管理数据”,Qt 提供了基于 Item 的简化版控件(ListWidget/TableWidget/TreeWidget...2.1 ListWidget:简洁高效的列表控件 QListWidget 是垂直列表控件,适用于展示单列批量数据(如文件列表、选项列表等),支持单选、多选、添加、删除等基础操作,用法简洁直观...; 多选获取:通过selectedItems()获取所有选中项,返回QList; Item 编辑:需设置item->setFlags(item->flags() |
当我们不需要复杂的列表时,可以选择QListWidget。QListWidget中可以添加QListWidgetItem类型作为列表项,QListWidgetItem即可以有文本,也可以有图标。...:第一种需要在构造时设置所要添加到的QListWidget对象;第二种方法不需要这样设置,而是要调用addItem()或者insertItem()自行添加。...最后,我们将这个 root 添加到一个QTreeWidgetItem的列表,作为QTreeWidget的数据项。...当我们不需要复杂的列表时,可以选择QListWidget。QListWidget中可以添加QListWidgetItem类型作为列表项,QListWidgetItem即可以有文本,也可以有图标。...最后,我们将这个 root 添加到一个QTreeWidgetItem的列表,作为QTreeWidget的数据项。
该属性用来获取一个集合,该集合包含 ListBox 控件中所有选定项的从零开始的索引。 (7)SelectedItem属性:获取或设置ListBox中的当前选定项。...在向已排序的 ListBox控件中添加项时,这些项会移动到排序列表中适当的位置。 (10)Text 属性:该属性用来获取或搜索 ListBox 控件中当前选定项的文本。...当把此属性值设置为字符串值时,ListBox 控件将在列表内搜索与指定文本匹配的项并选择该项。若在列表中选择了一项或多项,该属性将返回第一个选定项的文本。...完成向列表框中添加项的任务后,再调用 EndUpdate 方法使 ListBox 控件重新绘制。当向列表框中添加大量的列表项时,使用这种方法添加项可以防止在绘制 ListBox 时的闪烁现象。...值为 true 时,是默认菜单项,值为 false时,不是默认菜单项。菜单的默认菜单项以粗体的形式显示。当用户双击包含默认项的子菜单后,默认项被选定,然后子菜单关闭。
和QListWidget样式表的设置,滚动条的样式设置 一、QListWidget的使用 //一、QListWidget list_widget = new QListWidget(); //list_widget...(list_widget); add_item->setIcon(QIcon(":/res/pix/add.png")); add_item->setText(tr("Add")); //设置item项中的文字位置...::takeItem(int index)来删除表中的某一项 //list_widget->takeItem(0); //删除item,必须要加上delete item,否则删不掉 //list_widget...是否可以自动排序,默认是false //list_widget->setSortingEnabled(true); //设置QLisView大小改变时,图标的调整模式,默认是固定的,可以改成自动调整...width:10px; border-image:url(:/selectfile/scroll/2.png); subcontrol-position:top; } /*当滚动条滚动的时候
由于PyQt的的跨平台特性,QThread要隐藏所有与平台相关的代码 要使用的QThread开始一个线程,可以创建它的一个子类,然后覆盖其它QThread.run()函数 class Thread...,首先使用以下代码进行布局,把列表控件和按钮控件放在栅格布局管理器中 #实例化列表控件与按钮控件 self.listFile = QListWidget()...def slotAdd(self,file_inf): #向列表控件中添加条目 self.listFile.addItem(file_inf) 定义一个线程类,继承自QThread,当线程启动时,执行...,就会造成程序运行失败的假象,实际还是在后台运行的,只是没有显示在主窗口的界面上,当然用户体验也就非常差,那么如何解决这个问题呢,下面实例三进行解答 实例三:分离UI主线程与工作线程 import...() #实例化列表控件与按钮控件 self.listFile=QListWidget() self.btnStart=QPushButton('开始')
如何保存第一次登录数据 2. 如何获取已经登录过的账号信息,并完成自定义下列框 3. 从下拉列表框删除账号 4. 文本框显示正确内容 ---- 一....读完该篇,你将学会: 如何保存登录数据 实现是否记住密码 如何获取本地数据 登录界面中出现的下拉框 从下拉列表框删除账号 改变选项,实时显示 其中下拉框的自定义比较复杂,我看到有网友在评论区问了如何实现...如何保存第一次登录数据 ? 先来分析一下: 要保存的数据,1.头像 2.账号 3.密码 4.是否记住密码,并且第三项密码依赖于第四项用户是否勾选记住密码。...,第一行是账号,第二行是密码,当第二行为空时,说明用户没有选择记住密码。...如何获取已经登录过的账号信息,并完成自定义下列框 这一步相对于如何保存信息已经简单了许多, 只需要将头像和文件内容显示在下拉列表框即可。
一些常用的属性: DataMember 当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。(从 DataBoundControl 继承。)...获取或设置 DropDownList 控件中的选定项的索引。 SelectedItem 获取列表控件中索引最小的选定项。(从 ListControl 继承。...如果列表控件只允许一个选项,则使用此属性可获取选定项的各个属性。如果列表控件允许多个选项,则使用此属性可获取列表控件中索引最小的选定项的属性。...) SelectedValue 获取列表控件中选定项的值,或选择列表控件中包含指定值的项。(从 ListControl 继承。)...GetType 获取当前实例的 Type。 (从 Object 继承。) 公共事件 SelectedIndexChanged 当列表控件的选定项在信息发往服务器之间变化时发生。
这里借用Qt来实现这么一个文件浏览器,实现以下功能: 可以显示指定目录下的文件列表; 鼠标双击文件列表里的文件夹,可以进入其子文件夹,也可返回上一级。...图标获取函数:getItemPropertyIcon(int iType); 这个不是必须的,只是为了能够更直观的分辨文件夹和文件。...我自己做了两个图标,放在工程目录下,待会儿在CPP文件里可以看到如何用。 2.QListWidgetItem 这个类可以自己看一下官方文档,什么时候用,怎么用。...文档里说到当返回键或者回车键被按下时,这个信号才能够被发射。后面还有一堆复杂的,我没去研读了。也就是说,当在该lineEdit里输入完成,按下回车键后,该信号会被发射,然后执行槽函数。...里显示文件列表 this->showFileInfoList(infoList); } 这里要说明一下QDir的方法entryInfoList(),该方法返回一个包含该目录下的所有文件和文件夹的列表
DataMember 当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。...获取或设置 DropDownList 控件中的选定项的索引。 SelectedItem 获取列表控件中索引最小的选定项。(从 ListControl 继承。...如果列表控件只允许一个选项,则使用此属性可获取选定项的各个属性。如果列表控件允许多个选项,则使用此属性可获取列表控件中索引最小的选定项的属性。...) SelectedValue 获取列表控件中选定项的值,或选择列表控件中包含指定值的项。(从 ListControl 继承。)...GetType 获取当前实例的 Type。 (从 Object 继承。) 公共事件 SelectedIndexChanged 当列表控件的选定项在信息发往服务器之间变化时发生。
其中,CheckOnClick属性是控制当用户单击列表框中的项时是否自动选中该项的一个属性。当CheckOnClick属性设置为true时,单击项时,该项的选中状态会自动切换。...当CheckOnClick属性设置为false时,单击项时,该项并不会自动选中或取消选中。相反,单击项只会更改列表框的焦点,这样用户可以使用键盘上的箭头键来更改选定项。...消息框显示用户选择或取消选择的项的文本。要获取选定项的索引,我们可以使用ItemCheckEventArgs对象的Index属性。...要获取选定项的文本,我们可以使用CheckBoxList控件的Items集合。最后,我们还可以使用CheckedItems属性来获取用户选择的所有项目。...最后,我们弹出一个消息框,显示用户选择的所有项目的文本。这是一个非常基本的示例,演示如何在Winforms应用程序中使用CheckBoxList控件。
本篇示例演示的是拖动移动,而不是复制(当然,也可以复制),重新实现了以下拖动相关的方法: dragEnterEvent()#拖动开始时,和刚进入目标控件时调用 dragMoveEvent()#鼠标移动过程中不断被调用...__init__(parent) self.setAcceptDrops(True)#必须有(当然,图标模式的列表控件已默认打开) #拖动时依次调用...print(urls) #以上三行只是为了演示,若拖动文件到程序,如何获取文件的全路径 event.ignore()...Qt.MoveAction) == Qt.MoveAction: #Qt.CopyAction 复制# Qt.MoveAction 移动 index =self.row(item)#返回拖动项在源列表控件的索引...iconListWidget.setObjectName("图标列表控件") iconListWidget.setViewMode(QListWidget.IconMode
1.QListWidget和QListView QListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel...等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem...currentTextChanged(const QString ¤tText) //当前项改变发出信号 void itemClicked(QListWidgetItem *item) //点击项时发出信号...//鼠标进入某项发出信号 void itemPressed(QListWidgetItem *item) //鼠标按住某项发出信号 void itemSelectionChanged() //改变选择项时发出信号...要清空列表框的所有项,只需调用 QListWidget::clear() 函数即可。 4.添加样式表 简单添加一些选中项的颜色,仅供参考。
模型 所有的模型都基于QAbstractItemModel类,该类提供了十分灵活的接口来处理各种视图,这些视图的数据表现形式为表格(table)、列表(list)、树(tree)。...当标准模型还无法满足需要时,可子类化QAbstractItemModel、QAbstractListModel或QAbstractTableModel来创建自定义的模型。...常见的3种模型为列表模型、表格模型、树模型,如下图所示: 为确保数据的表示与数据获取相分离,Qt引入了模型索引的概念,输入和委托均可通过模型索引来请求数据并显示。...只有模型需要知道怎样获取数据,被模型管理的数据类型可以被广泛的定义。模型索引包含一个指针,指向创建他们的模型,使用多个模型时可避免混淆。...QListView将数据项显示为一个列表;QTableView将模型中的数据显示在一个表格中;QTreeView将模型中的数据项显示在具有层次的列表中。
---- 两者的区别: Item Views(Model-Based)的对象进行数据操作相对比较复杂,但处理及展示大数据量时性能高; Item Widgets的数据操作比较简单,但处理及展示大数据量时性能相对低...),操作方便,直接调用addItem即可添加项目(ICON,文字) 详细介绍可以看博客 “Qt入门-列表框QListWidget类” “Qt5.9中控件listWidget用法(QListWidget基本用法...详细介绍可以看博客: “QTableWidget与QTableView的区别” “QTableWidget / QTableView的应用” ---- Column View :以模型/视图数据为基础的...,以列为单位的列表控件 详细介绍可以看博客: “QT基础知识(九)列表控件QColumnView” “Qt编写ColumnView入门示例” #可以指定列表视图是否获取调整大小。...详细介绍可看博客: “实战PyQt5: 078-撤销命令视图QUndoView” “Qt如何实现QTableView的撤消与恢复功能”