自学内容网 自学内容网

Qt容器类控件——QGroupBox和QTabWidget

QGroupBox

容器类控件即里面可以容纳其他的控件

QGroupBox叫做分组框,可以把其他控件放在里面作为一组

QGroupBox的存在,只是为了让界面更好看一点,并不实现实质性的功能。

当界面较复杂的时候,分组框就可以将具有关联关系的控件,组织到一起。

属性说明
title分组框的标题
alignment分组框内部内容的对齐方式
flat是否为“扁平”模式
checkable是否可选择
设置为true,则在title前方多出一个可勾选的部分
checked描述分组框的选择状态

又来点餐

界面属性设置:

image-20240916164421095

勾选“扁平化”和是否可选择:

image-20240916164701727

QTabWidget

QTabWidget实现一个带有标签页的控件,可以往里面添加widget。然后就可以通过标签页来切换。

核心属性

属性说明
tabPosition标签页所在位置:
North上方
South下方
West左侧
East右侧
currentIndex当前选择了第几个标签页(从0开始就算)
currentTabText当前选择的标签页文本
currentTabName当前选中的标签页的名字
currentTabIcon当前选中标签页的图标
currentTabToolTip当前选中的标签页的提示信息
tabsCloseable标签页是否可以关闭
moveable标签页是否可以移动

核心信号:

信号说明
currentChanged(int)在标签页发生切换时触发,参数为被点击的选项卡编号
tabBarClicked(int)在点击选项卡的标签条的时候触发,参数为被点击的选项卡编号
tabBarDoubleClicked(int)双击选项卡的标签条的时候触发,参数为被点击的选项卡编号
tabCloseRequest(int)在标签页关闭时触发,参数为被关闭的选项卡编号

使用演示

图形化示例:

image-20240916165857641

创建一个程序,带有一个TabWidget作为标签页,设置2个按钮,可以新增和删除标签页

代码示例:

#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->tabWidget->setTabsClosable(true);
    //标签页当中,添加一个label
    QLabel* label1 = new QLabel(ui->tab);
    label1->setText("标签页1");
    label1->resize(100, 100);

    QLabel* label2 = new QLabel(ui->tab_2);
    label2->setText("标签页2");
    label2->resize(100, 100);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    //addTab创建
    //参数1   指定一个QWidget
    //参数2   指定标签页的标题
    int count = ui->tabWidget->count();
    QWidget* w = new QWidget();
    ui->tabWidget->addTab(w, QString("Tab") + QString::number(count+1));

    QLabel* label = new QLabel(w);
    label->setText(QString("标签页") + QString::number(count+1));
    label->resize(100, 100);

    //新增完毕之后,设置新增为选中
    ui->tabWidget->setCurrentIndex(count);
}

void Widget::on_pushButton_2_clicked()
{
    //获取当前标签页下标
    int index = ui->tabWidget->currentIndex();
    //删除标签页
    ui->tabWidget->removeTab(index);
}

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

GIF 2024-9-16 17-51-22


原文地址:https://blog.csdn.net/Dirty_artist/article/details/142306334

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!