目录
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()
{
//创建新界面并添加一个label
QWidget *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);
}
结束语
感谢你的阅读,如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要