C++客户端Qt开发——常用控件(容器类控件)

6.容器类控件

①GroupBox 带标题分组框

属性

说明

title

分组框的标题

alignment

分组框内部内容的对齐方式

flat

是否是"扁平"模式

checkable

是否可选择

设为true,则在title前方会多出一个可勾选的部分.

check

描述分组框的选择状态(前提是checkable为true)

分组框只是一个用来"美化界面"这样的组件,并不涉及到用户交互和业务逻辑.属于"锦上添花”

①给麦当劳案例加上分组框

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->comboBox->addItem("巨无霸");
    ui->comboBox->addItem("麦辣鸡腿堡");

    ui->comboBox_2->addItem("薯条");
    ui->comboBox_2->addItem("麦辣鸡翅");

    ui->comboBox_3->addItem("可乐");
    ui->comboBox_3->addItem("雪碧");
}

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

②Tab Widget 带标签页的控件

属性

说明

tabPosition

标签页所在的位置

North:上方

South:下方

West:左侧

East:右侧

currentlndex

当前选中了第几个标签页(从0开始计算)

currentTabText

当前选中的标签页的文本

currentTabName

当前选中的标签页的名字

currentTablcon

当前选中的标签页的图标

currentTabToolTip

当前选中的标签页的提示信息

tabsCloseable

标签页是否可以关闭

movable

标签页是否可以移动

核心信号

属性

说明

currentChanged(int)

在标签页发生切换时触发,参数为被点击的选项卡编号

tabBarClicked(int)

在点击选项卡的标签条的时候触发.参数为被点击的选项卡编号

tabBarDoubleClicked(int)

在双击选项卡的标签条的时候触发.参数为被点击的选项卡编号

tabCloseRequest(int)

在标签页关闭时触发.参数为被关闭的选项卡编号

QTabwidget中的每个标签页都是一个QWidget

点击标签页,就可以直接切换

右键QTabwidget,可以添加标签页或者删除标签页

①使用标签页管理多组控件

注意新创建的label的父元素,是ui->tab和ui->tab_2.Qt中使用父子关系决定该控件"在哪里”

#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QLabel* label = new QLabel(ui->tab);
    label->setText("标签页1");
    label->resize(100,50);

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

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


void Widget::on_pushButton_add_clicked()
{
    //获取当前有几个标签页
    int count = ui->tabWidget->count();
    //创建新的标签页
    QWidget* w = new QWidget();
    ui->tabWidget->addTab(w,QString("Tab ") + QString::number(count+1));
    //给widget中添加label
    QLabel* label = new QLabel(w);
    label->setText(("标签页 ") + QString::number(count+1));
    label->resize(100,50);
    //选中这个新的标签页
    ui->tabWidget->setCurrentIndex(count);
}

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

void Widget::on_tabWidget_currentChanged(int index)
{
    qDebug() << "当前选中标签页为:标签页" << index+1;
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Outlier_9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值