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

【QT】常用控件(四)

在这里插入图片描述

个人主页~

常用控件(一)~
常用控件(二)~
常用控件(三)~


常用控件

  • 五、输入类控件
    • 4、SpinBox
    • 5、Date Edit 和 Time Edit
    • 6、Dial
    • 7、Slider
      • 快捷键shortcut
  • 六、多元素控件
    • 1、List Widget
    • 2、Table Widget
    • 3、Tree Widget
  • 七、容器类控件
    • 1、Group Box
    • 2、Tab Widget
  • 八、布局管理器
    • 1、QVBoxLayout
    • 2、QHBoxLayout
    • 3、QGridLayout
    • 4、QFormLayout
    • 5、Spacer

五、输入类控件

4、SpinBox

属性说明
value存放的数值
singleStep按下一次按钮变化多少
displayInteger数字的进制设置
minimum最小值
maximum最大值
suffix后缀
prefix前缀
wrapping是否允许换行
frame是否带边框
alignment文字对齐方式
readOnly是否只读
buttonSymbol按钮上的图标
accelerated按下按钮是否快速调整
correctionMode输入错误如何修正
keyboardTrack是否开启键盘跟踪

对于buttonSymbol,有三种模式:
UpDownArrows:上下箭头形式(默认)
PlusMinus:加减号形式
NoButtons:没有按钮

对于correctionMode,有两种模式:
QAbstractSpinBox::CorrectToPreviousValue:输入无效值会将其重置为上一个输入的有效值(默认)
QAbstractSpinBox::CorrectToNearestValue:输入无效值会将其重置为最接近这个无效值的有效值

对于keyboardTrack,开启时只要输入新的数字就会触发值修改信号,关闭只有在按下enter和失去焦点的时候才能值修改触发信号

spinbox

5、Date Edit 和 Time Edit

QDateEdit 调日期
QTimeEdit 调时间
QDateTimeEdit 调日期时间,作为本条的例子

属性说明
dateTime时间日期的值
date日期的值
time时间的值
displayFormat时间日期的格式
minimumDateTime最小时间日期
maximumDateTime最大时间日期
timeSpec时间的显示格式

其中timeSpec有三种模式:
Qt::LocalTime:本地时间
Qt::UTC : 协调世界时
Qt::OffsetFromUTC :显示相对于UTC的偏移量

写一个计算两个时间之间间隔的程序

void Widget::on_pushButton_clicked()
{QDateTime oldtime = ui->dateTimeEdit_old->dateTime();QDateTime newtime = ui->dateTimeEdit_new->dateTime();int days = oldtime.daysTo(newtime);//算出相差的天数int hours = (oldtime.secsTo(newtime) / 3600) % 24;//算出相差的小时数if(oldtime.time() > newtime.time()){days--;}
//如果旧的时间大于新的时间,减一天天数QString text = QString("它们之间的时间为:")+QString::number(days)+QString("天零")+QString::number(hours)+QString("小时");ui->label->setText(text);
}

在这里插入图片描述

6、Dial

属性说明
value数值
minimum最小值
maximum最大值
singleStep按方向键时改变的步长
pageStep按pageup或pagedown时改变的步长
sliderPosition界面上旋钮显示的初始位置
tracking外观是否会跟踪数值变化
wrapping是否允许循环调整
notchesVisible是否显示刻度线
notchTarget刻度线之间的相对位置

这是一个设置窗口透明度的应用dial的程序

dial

7、Slider

属性说明
value数值
minimum最小值
maximum最大值
singleStep按方向键时改变的步长
pageStep按pageup或pagedown时改变的步长
sliderPosition滑动条显示的初始位置
tracking外观是否会跟随数值变化
orientation滑动条的方向是水平还是垂直
invertedAppearance是否要翻转滑动条的方向
tickPosition刻度的位置
tickInterval刻度的密集程度

设置按钮的尺寸大小,用拖动滑动条的方式来进行

QSlider

快捷键shortcut

这是一个关键的知识,用来设置快捷键

QShortcut

六、多元素控件

1、List Widget

属性说明
currentRow当前被选中的是第几行
count一共有多少行
sortingEnabled是否允许排序
isWrapping是否允许换行
itemAlignment元素的对齐方式
selectRectVisible被选中的元素矩形是否可见
spacing元素间的间隔

listwidget

2、Table Widget

方法说明
item(int row, int column)根据行数列数获取指定的QTableWidgetItem*
setItem(int row, int column,QTableWidget*)根据行数设置表格中的元素
currentItem()返回被选中的元素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列
setHorizontalHeaderItem(int column, QTableWidget*)设置指定列的表头
setVerticalHeaderItem(int row,QTableWidget*)设置指定行的表头

tablewidget

3、Tree Widget

方法说明
clear清空所有子节点
addTopLevelItem(QTreeWidgetItem* item)新增顶层节点
topLevelItem(int index)获取指定下标的顶层节点
topLevelItemCount()获取顶层节点个数
indexOfTopLevelItem(QTreeWidgetItem* item)查询指定节点的下标
takeTopLevelItem(int index)删除指定的顶层节点
currentItem()获取到当前选中的节点
setCurrentItem(QTreeWidgetItem* item)选中指定节点
setExpanded(bool)展开或关闭节点
setHeaderLabel(const QString& text)设置TreeWidget的header名称

对于TreeWidget来说,顶层节点是除掉头节点以外的第一层节点

QTreeWidget

七、容器类控件

1、Group Box

属性说明
title分组框的标题
alignment分组框内部内容的对齐方式
flat是否为扁平模式
checkable是否可选择
checked是否被选择

groupbox

2、Tab Widget

属性说明
tabPosition标签页所在位置
currentIndex当前选中了第几个标签页
currentTabText当前选中的标签页的文本
currentTabName当前选中的标签页的名字
currentTabIcon当前选中的标签页的图标
currentTabToolTip当前选中的标签页的提示信息
tabsCloseable标签页是否可以关闭
movable标签页是否可以移动

TabWidget就是一个widget,可以在上面添加其他如label pushbutton等的控件

tablewidget

八、布局管理器

QT通过布局管理器解决一些位置的问题,因为在QT中在设置位置的时候都是绝对位置的设置,比如说setgeometry、move,或者ui界面的拖动

1、QVBoxLayout

属性说明
layoutLeftMargin左侧边框
layoutRightMargin右侧边框
layoutTopMargin上方边距
layoutBottomMargin下方边框
layoutSpacing相邻元素之间的间距

在这里插入图片描述

2、QHBoxLayout

属性说明
layoutLeftMargin左侧边框
layoutRightMargin右侧边框
layoutTopMargin上方边距
layoutBottomMargin下方边框
layoutSpacing相邻元素之间的间距

在这里插入图片描述
垂直布局和水平布局是可以相互嵌套的,通过它们的相互配合可是实现更好的效果
在这里插入图片描述
在实现完成后,我们拖动边框发现按钮的大小是可以通过窗口的变化来变化的,但是要是通过ui将两个垂直布局或者两个水平布局设置到一个layout里,那么就不会实现这样的效果,因为一个widget只能有一个layout

3、QGridLayout

属性说明
layoutLeftMargin左侧边框
layoutRightMargin右侧边框
layoutTopMargin上方边距
layoutBottomMargin下方边框
layoutHorizontalSpacing相邻水平方向元素间隔
layoutVerticalSpacing相邻垂直方向元素
layoutRowStretch行方向拉伸系数
layoutColumnStretch列方向拉伸系数

可以通过所写坐标设置控件的相对位置
在这里插入图片描述
在这里插入图片描述

4、QFormLayout

可以算作是QGridLayout的一种特殊情况,左侧为提示,右侧为输入框
在这里插入图片描述
addRow第一个参数显示提示,如果为NULL则不显示

5、Spacer

属性说明
width宽度
height高度
hData水平方向的SizePolicy选项
vData垂直方向的SizePolicy选项

选项有如下几种:
QSizePolicy::Ignored :忽略控件尺寸,不对布局产生影响
QSizePolicy::Minimum : 控件的最小尺寸固定,布局时不会小于该值
QSizePolicy::Maximum : 控件的最小尺寸固定,布局时不会大于该值
QSizePolicy::Preferred : 控件的理想尺寸固定,布局时往这个值靠近
QSizePolicy::Expanding :控件的尺寸可以根据空间调整,尽可能的多占据空间
QSizePolicy::Shrinking : 控件的尺寸可以根据空间调整,尽可能的少占据空间

在这里插入图片描述


今日分享就到这里了~
在这里插入图片描述


http://www.mrgr.cn/news/57377.html

相关文章:

  • qt QWidget详解
  • yjs机器学习数据操作01——数据的获取、可视化
  • 【数据结构】时间复杂度和空间复杂度是什么?
  • 2024年【浙江省安全员-C证】考试题库及浙江省安全员-C证找解析
  • 矩阵的可解性:关于Ax=b的研究
  • Java岗临近面试,如何短期突击通过?
  • 12_Linux进程管理命令详解
  • 使用Dask在多块AMD GPU上加速XGBoost
  • 深度学习(五):语音处理领域的创新引擎(5/10)
  • 大模型的特点、重要概念及工作方式详解
  • Leetcode 875 KoKo Eats banana
  • 问:数据库,脏读、幻读、不可重复读~
  • 分布式系统集群中节点管理
  • C++ -stack、queue
  • Golang | Leetcode Golang题解之第503题下一个更大元素II
  • 如何在 Debian VPS 上使用 mod_wsgi 和 Apache 运行 Django,并使用 virtualenv Python 环境
  • 【thinkphp8】00007 内置服务器,切换php版本
  • 13_Linux开机流程:以Red Hat Enterprise Linux 7(RHEL 7)为例
  • PTA数据库编程练习合集
  • PostgreSQL(十三)pgcrypto 扩展实现 AES、PGP 加密,并自定义存储过程
  • 10.21-10.23
  • 偷懒总结篇|贪心算法|动态规划|单调栈|图论
  • iPhone图片/照片/视频复制到win10系统的简单方法 - 照片导出
  • R语言统计分析——置换检验3
  • CMOS 图像传感器:像素寻址与信号处理
  • 【ShuQiHere】如何在 Linux 上虚拟化 macOS Catalina