当前位置: 首页 > news >正文

QT多元素控件及其属性

Qt中提供的多元素控件有:

QListWidget

QListView

QTableWidget

QTableView

QTreeWidget

QTreeView

widget和view多元素控件的区别:

view是更底层的实现,widget是基于view封装而来,view是MVC结构的一种典型实现

MVC结构:

  1. --model数据

V---view视图(界面)

C---controller控制器 数据和视图之间的业务流程

此处的view多元素控件只负责实现了视图,不负责数据如何存储表示,无控制器

因此如果要使用view的多元素控件就要自己实现model和controller的部分

而widget多元素控件基于view多元素控件同时把model和controller都实现好了,有可用直接使用的接口

List Widget

使用QListWidget能够显示一个纵向的列表

如:

核心属性

属性

说明

currentRow

当前被选中的是第几行

count

一共有多少行

sortingEnabled

是否允许排序

isWrapping

是否允许换行

itemAlignment

元素的对齐方式

selectRectVisible

被选中的元素矩形是否可见

spacing

元素之间的间隔

核心方法

方法

说明

addItem(const QString& label)

addItem(QListWidgetItem *item)

列表中添加元素

currentItem

返回QListWidgetItem* 表示当前

选中的元素

setCurrentItem(QListWidget* item)

设置选中哪个元素

setCurrentRow(int row)

设置选中第几行的元素

insertItem(const QString& label,int

row)

在指定位置插入元素

item(int row)

返回QListWidgetItem* 表示row

行的元素

takeItem(int row)

删除指定行的元素,返回

QListWidgetItem* 表示哪个元素

被删除了

核心信号

信号

说明

currentItemChanged(QListWidget*

current,QListWidgetItem* old)

选中不同元素时会触发,参数是

当前选中的元素和之前选中的元

currentRowChanged(int)

选中不同元素时会触发,参数是

当前选中元素的行数

itemClicked(QListWidgetItem* item)

点击某个元素时触发

itemDoubleClicked(QListWidgetItem* item)

双击某个元素时触发

itemEntered(QListWidgetItem* item)

鼠标进入元素时触发

例:

在ui界面创建一个ListWidget,一个lineEdit,两个pushButton

实现输入框接收内容插入到listWidget中

在构造函数进行ListWidget的元素添加

还可用在ui界面通过右键ListWidget控件选中编辑项目进行元素添加

添加三个元素后转到新增按钮的槽函数

再转到删除按钮的槽函数

就可以通过按钮配合输入框实现LineEdit中元素的新增与删除

Tabel Widget

使用TableWidget表示一个表格控件,一个表格中包含若干行,每一行又包含若干列,表格中的每个单元格都是一个QTableWidgetItem对象

TableWidget核心方法

方法

说明

item(int row,int column)

根据行数列数获取指定的QTableWidgetItem*

setItem(int row,int

column,TableWidget*)

根据行数列数设置表格中的元素

currentnItem()

返回被选中的元素

QTableWidgetItem*

currentRow()

返回被选中元素是第几行

currentColumn()

返回被选中的元素是第几列

row(QTableWidgetItem*)

获取指定item是第几行

column(QTableWidgetItem*)

获取指定item是第几列

rowCount()

获取行数

columnCount()

获取列数

insertRow(int row)

在row行处插入新行

insertColumn(int column)

在column列插入新列

removeRow(int row)

删除第row行

removeColumn(int column)

删除第column列

setVerticalHeaderItem(int row,QTableWidget*)

设置指定行的表头

setHorizeontalHeaderItem(int row,QTableWidget*)

设置指定列的表头

核心信号

信号

说明

cellClicked(int row,int column)

点击单元格时触发

cellDoubleClicked(int row,int

column)

双击单元格时触发

cellEntered(int row,int column)

鼠标进入单元格时触发

currentCellChanged(int row,int

column,int previousRow,int

previousColumn)

选中不同单元格时触发

QTableWidgetItem核心方法

方法

说明

row()

获取当前是第几行

column()

获取当前是第几列

setText(const QString&)

设置文本

setTextAlignment(int)

设置文本对齐

setIcon(const QIcon&)

设置图标

setSelected(bool)

设置被选中

setSizeHints(const QSize&)

设置尺寸

setFont(const QFont&)

设置字体

例:

在ui界面创建一个TableWidget,四个功能按钮,一个lineEdit用于接收列名

在构造函数对lineEdit进行初始化

在构造函数对表格数据进行初始化

再尝试给表格添加数据

转到新增一行按钮的槽函数进行实现

转到删除选中行的槽函数进行实现

转到新增一列的槽函数进行实现

转到删除选中列槽函数进行实现

从而实现通过按钮控制表格

TreeWidget

使用TreeWidget表示一个树形控件,里面的每个元素都是一个QTreeWidgetItem,每个QTreeWidgetItem可用包含多个文本和图标,每个文本/图标为一个列

可以给TreeWidget设置顶层节点(可以有多个),然后给顶层阶段添加字节到,从而构成树形结构

TreeWidget核心方法

方法

说明

clear

清空所有子节点

addTopLevelItem(QTreeWidgetItem* item)

新增顶层节点

topLevelItem(int index)

获取指定下标的顶层节点

topLevelItemCount()

获取顶层节点个数

indexOfTopLevelItem(QTreeWidgetItem

*item)

查询指定节点在顶层节点下的下标

takeTopLevelItem(int index)

删除指定的顶层节点,返回QTreeWidgetItem*表示被删除的元素

currentItem()

获取到当前选中的节点,返回QTreeWidgetItem*

setCurrentItem(QTreeWidgetItem* item)

选中指定节点

setExpanded(bool)

展开/关闭节点

setHeaderLabel(const QString& text)

设置TreeWidget的header名称

TreeWidget核心信号

信号

说明

currentItemChanged(QTreeWidgetItem*

current,QTreeWidgetItem* old)

切换选中元素时触发

itemClicked(QTreeWidgetItem* item,int col)

点击元素时触发

itemDoubleClicked(QTreeWidget* item,int col)

双击元素时触发

itemEntered(QTreeWidgetItem* item,int col)

鼠标进入时触发

itemExpanded(QTreeWidgetItem* item)

元素被展开时触发

itemCollapsend(QTreeWidget* item)

元素被折叠时触发

QTreeWidgetItem核心属性

属性

说明

text

持有的文本

textAlignment

文本对齐方式

icon

持有的图标

font

文本字体

hidden

是否隐藏

disabled

是否禁用

expand

是否展开

sizeHint

尺寸大小

selected

是否被选中

QTreeWidgetItem核心方法

方法

说明

addChild(QTreeWidgetItem* child)

新增子节点

childCount()

子节点的个数

child(int index)

获取指定下标的子节点,返回QTreeWidgetItem*

takeChild(int index)

删除对应下标的子节点

removeChild(QTreeWidgetItem*    

child)

删除对应的子节点

parent()

获取该元素的父节点

例:

在ui界面创建一个TreeWidget,一个lineEdit作为输入框,用来添加新节点,3个pushButton分别用来实现不同的功能

在构造函数对lineEdit的提示内容进行初始化

在构造函数对TreeWidget设置根节点名字,插入元素

转到添加顶层按钮的clicked信号的槽函数进行实现

转到添加选中元素按钮的clicked信号的槽函数进行实现

转到删除选中元素按钮的clicked槽函数进行实现

实现了通过按钮添加元素,删除元素的操作

相关文章:

  • HTTP代理基础:网络新手的入门指南
  • 【HFP】蓝牙HFP协议来电处理机制解析
  • vue实现静默打印pdf
  • 利用HandlerMethodArgumentResolver和注解解析封装用户信息和Http参数
  • 【k8s】Taint污点)、Toleration(容忍)
  • 事关数据安全,ARM被爆不可修复漏洞
  • 在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器
  • 单片机通讯外设 (UART)、I2C、SPI、CAN 和 LIN 时序分析 使用场景以及优缺点对比分析报告
  • Ubuntu 环境下控制蓝牙适配器
  • JVM理解(通俗易懂)
  • Python内置函数---bin()
  • 11.thinkphp的模板
  • java将pdf转换成word
  • 3DGS之齐次坐标
  • 用户模块-SpringEvent观察者模式
  • ToB标杆!容联云入选量子位「2025中国AIGC应用报告」
  • CSS内边距、外边距、边框
  • 深入微服务核心:从架构设计到规模化
  • CSS初识
  • Android仿今日头条Kotlin版本
  • 冲击一英里4分钟大关,基普耶贡挑战女子中长跑极限
  • 央行上海总部:受益于过境免签政策,上海市外卡刷卡支付交易量稳步增长
  • 鼓励每位学生为优秀定义,上海奉贤这所学校有何特色?
  • 从“龙队”到“龙副主席”,国乒这批退役球员为何不当教练了
  • 从神舟五号到神舟二十号,每次任务标识藏着哪些逐梦星辰的密码
  • 浙江一季度GDP为22300亿元,同比增长6.0%