您的位置:首页 > 科技 > 能源 > 【Qt】容器类控件

【Qt】容器类控件

2024/10/6 20:28:50 来源:https://blog.csdn.net/m0_72563041/article/details/141028548  浏览:    关键词:【Qt】容器类控件

目录

QGroupBox 分组框

QTabWidget 标签页


QGroupBox 分组框

QGroupBox类用于组织用户界面的相关控件,以便更清晰地显示逻辑结构或功能分组,并提供一个可选的标题。分组框主要是用于规整和美化界面,不涉及用户交互和业务逻辑

可以通过样式表(CSS)或者直接的属性设置,定制QGroupBox的外观,例如设置边框、背景色等。也可以嵌套使用多个QGroupBox,以创建更复杂的布局结构,帮助用户更好地理解和操作相关控件


核心属性

属性说明
title分组框的标题
alignment分组框内部内容的对齐方式
flat是否是“扁平”模式
checkable

是否可选择

设为true,在title前会多出一个可勾选框

checked

当checkable为true时,该属性才有意义

描述分组框的选择状态

true代表选中,可以使用其中的控件,反之则不能


示例:点餐小程序。使用QGroupBox组织控件,包括QComboBox和QSpinBox

直接使用Qt Designer实现即可

设置主食的分组框 flat = true,效果如下,感觉主食的分组框还想嵌在界面中

设置主食的分组框 checkable = true,check = true;小食的分组框 checkable = true,check = false


QTabWidget 标签页

QTabWidget类用于实现选项卡式界面,允许用户在单个窗口内切换显示不同的页面或标签页,也可以往其中添加一些控件,每个标签页都包含相关的内容和功能


核心属性

属性说明
tabPosition

标签页所在的位置

  • North:标签显示在左上方
  • South:标签显示在左下方
  • West:标签显示在左侧
  • East:标签显示在右侧
currentIndex当前选中第几个标签页,从0开始计算
currentTabText当前选中的标签页的文本
currentTabName

当前选中的标签页的名字,用于代码编程使用

currentTabIcon当前选中的标签页的图标
currentTabToolTip当前选中的标签页的提示信息
tabsClosable

标签页是否可以关闭

设置为true后,选项卡旁会出现关闭按钮

movable标签页是否可以移动

其中,每个标签页都是一个QWidget

核心信号

属性说明
currentChanged(int)当标签页发生切换时触发,参数是切换后,当前标签页的编号
tabBarClicked(int)当点击选项卡的标签页时触发,参数是被点击的选项卡编号
tabBarDoubleClicked(int)当双击选项卡的标签页时触发,参数是被点击的选项卡编号
tabCloseRequest(int)

当设置tabsCloseable = true时,选项卡旁会出现关闭按钮

点击关闭按钮触发该信号,参数是要关闭的选项卡编号


代码示例:使用标签页管理多组控件,有两个按钮,一个新增标签页,一个删除当前选中标签页。通过信号与槽机制实现选项卡关闭按钮

1. 使用Qt Designer 添加所需控件

2. 编写widget.cpp,初始化相关控件

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//因为标签页是QWidget,指定其为父节点,就会在其界面显示QLabel *label1 = new QLabel(ui->tab);label1->resize(200, 50);label1->setText("此时处于标签页1");QLabel *label2 = new QLabel(ui->tab_2);label2->resize(200, 50);label2->setText("此时处于标签页2");
}

3. 编写按钮点击信号的槽函数

//新增标签页
void Widget::on_pushButton_add_clicked()
{//创建新界面并添加一个labelQWidget *widget = new QWidget();QLabel *label = new QLabel(widget);int count = ui->tabWidget->count();label->resize(200, 50);label->setText("此时处于标签页" + QString::number(count + 1));//添加到标签页中QString tabName = "Tab_" + QString::number(count + 1);ui->tabWidget->addTab(widget, tabName);//添加完后直接选中该标签页ui->tabWidget->setCurrentIndex(count);
}
//关闭当前选中标签页
void Widget::on_pushButton_delete_clicked()
{int index = ui->tabWidget->currentIndex();ui->tabWidget->removeTab(index);
}

4. 选项卡关闭按钮的槽函数

void Widget::on_tabWidget_tabCloseRequested(int index)
{ui->tabWidget->removeTab(index);
}

结束语

感谢你的阅读,如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com