目录
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 | 标签页所在的位置
|
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);
}
结束语
感谢你的阅读,如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要