1. QGroupBox
使用QGroupBox其实就是一个带有标题的分组框,可以把多个控件放在其中作为一组,这样做在有很多控件的时候可以更好的对各种控件进行管理。
核心属性:
属性 | 说明 |
---|---|
title | 分组框的标题 |
alignment | 分组框内部内容的对齐方式 |
flat | 是否是"扁平"模式 |
checkable | 是否可选择.设为true,则在title前方会多出⼀个可勾选的部分. |
checked | 描述分组框的选择状态(前提是 checkable 为 true) |
2. QTabWidget
核心属性:
属性 | 说明 |
---|---|
tabPosition | 标签页所在的位置.(North 上方)(South 下方)(West 左侧)(East 右侧) |
currentIndex | 当前选中了第几个标签页(从 0 开始计算) |
currentTabText | 当前选中的标签页的文本 |
currentTabName | 当前选中的标签页的名字 |
currentTabIcon | 当前选中的标签页的图标 |
currentTabToolTip | 当前选中的标签页的提示信息 |
tabsCloseable | 标签页是否可以关闭 |
movable | 标签页是否可以移动 |
核心信号
属性 | 说明 |
---|---|
currentChanged(int) | 在标签页发生切换时触发,参数为被点击的选项卡编号. |
tabBarClicked(int) | 在点击选项卡的标签条的时候触发. 参数为被点击的选项卡编号. |
tabBarDoubleClicked(int) | 在双击选项卡的标签条的时候触发. 参数为被点击的选项卡编号. |
tabCloseRequest(int) | 在标签页关闭时触发. 参数为被关闭的选项卡编号. |
代码样例:实现通过按钮添加标签页和删除标签页
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QLabel* label1 = new QLabel(ui->tab);
label1->setText("标签1");
label1->resize(200, 100);
QLabel* label2 = new QLabel(ui->tab_2);
label2->setText("标签2");
label2->resize(200, 100);
}
void Widget::on_pushButton_clicked()
{
// 创建页标签对象
QWidget* w = new QWidget();
int count = ui->tabWidget->count();
// 添加页标签
ui->tabWidget->addTab(w, "Tab " + QString::number(count + 1));
QLabel* label = new QLabel(w);
label->setText("标签" + QString::number(count + 1));
label->resize(200, 100);
// 设置为选中当前新建标签页
ui->tabWidget->setCurrentIndex(count);
}
void Widget::on_pushButton_2_clicked()
{
int index = ui->tabWidget->currentIndex();
ui->tabWidget->removeTab(index);
}