当前位置: 首页 > news >正文

Qt第三课 ----------容器类控件

作者前言

🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
​🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言、C++和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂


容器控件

  • **作者前言**
  • Group Box
  • Tab Widget

Group Box

使⽤ QGroupBox 实现⼀个带有标题的分组框. 可以把其他的控件放到⾥⾯作为⼀组. 这样看起来能更好看⼀点
分组框只是⼀个⽤来 “美化界⾯” 这样的组件, 并不涉及到⽤⼾交互和业务逻辑. 属于 “锦上添
花” .
如图:
在这里插入图片描述
属性如下:
title 分组框的标题
alignment 分组框内部内容的对⻬⽅式
flat 是否是 “扁平” 模式
checkable 是否可选择. 设为 true, 则在 title 前⽅会多出⼀个可勾选的部分.
checked 描述分组框的选择状态 (前提是 checkable 为 true)
下面写一个简单的代码,

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);CreateGroupBox("分组框1",200,300);
}Widget::~Widget()
{delete ui;
}QGroupBox *Widget::CreateGroupBox(QString title, int width, int heigth)
{//创建一个分组框QGroupBox* groupbox = new QGroupBox( this);groupbox->setTitle(title);groupbox->setFixedSize(width, heigth);//创建一个下拉框QComboBox * combox = new QComboBox(groupbox);combox->move(20,30);return groupbox;}

效果:
在这里插入图片描述
这里只是简单的写一个, 如果觉得不好看.可以通过ui文件去修改

Tab Widget

使⽤ QTabWidget 实现⼀个带有标签⻚的控件, 可以往⾥⾯添加⼀些 widget. 进⼀步的就可以通过标签⻚来切换
标签页如下:
在这里插入图片描述
属性如下:

在这里插入图片描述
使⽤ count() 获取到标签⻚的个数.
• 使⽤ addTab 新增标签⻚.
• 使⽤ removeTab 删除标签⻚.
• 使⽤ currentIndex 获取到当前标签⻚的下标.
• 使⽤ setCurrentIndex 切换当前标签⻚.
核⼼信号:
currentChanged(int) 在标签⻚发⽣切换时触发, 参数为被点击的选项卡编号.
tabBarClicked(int) 在点击选项卡的标签条的时候触发. 参数为被点击的选项卡编号.
tabBarDoubleClicked(int) 在双击选项卡的标签条的时候触发. 参数为被点击的选项卡编号.
tabCloseRequest(int) 在标签⻚关闭时触发. 参数为被关闭的选项卡编号.
下面我们写一个两个按钮,一个按钮创建标签页,一个按钮删除
ui文件:
在这里插入图片描述

代码如下:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::CreateInit(QWidget *parent)
{parent->resize(300,400);QPushButton * button = new QPushButton("1111", parent);button->resize(200,100);//设置成当前的标签页ui->tabWidget->setCurrentWidget(parent);qDebug() << "当前的标签页为:"<< ui->tabWidget->currentIndex();}void Widget::on_pushButton_clicked()
{QString name("创建出来的");QWidget* widget = new QWidget();ui->tabWidget->addTab(widget, name);QLabel* label = new QLabel(widget);
//    label->setText(name+QString::number(ui->tabWidget->count()));
//    new QPushButton("按钮", widget);CreateInit(widget);}
void Widget::on_pushButton_2_clicked()
{//获取当前的标签if(ui->tabWidget->currentIndex()>=  0)ui->tabWidget->removeTab(ui->tabWidget->currentIndex());
}
void Widget::on_pushButton_3_clicked()
{//获取当前的标签窗口qDebug() << "初始化" << ui->tabWidget->currentIndex();CreateInit(ui->tabWidget->currentWidget());QPushButton *a = new QPushButton(ui->tabWidget->currentWidget());
}

效果图:
在这里插入图片描述


http://www.mrgr.cn/news/68138.html

相关文章:

  • Java学习Day60:微服务总结!(有经处无火,无火处无经)
  • Vector和ArrayList
  • Java基础——反射
  • U8C表体存货或编码相关的字段赋值不上
  • Python教程:python枚举类定义和使用
  • oracle-函数-grouping sets(x1,x2,x3...)的妙用
  • 11.07学习
  • 泷羽sec学习打卡-shodan扫描7
  • 初识Java EE和Spring Boot
  • Java 类和对象(下)
  • windows安装nvm并配置换源
  • 机器学习4_支持向量机_核函数——MOOC
  • 深入理解 TCP 的握手与挥手机制:为何握手 3 次,挥手 4 次?
  • 算法题求解-给定一个整数序列,要求将序列中所有负数都放于所有非负数之前
  • windows 进程降权和提权代码示例(2) c++
  • Redis设计与实现 学习笔记 第十六章 Sentinel
  • 重构代码之参数化方法
  • 法语je vais bien
  • Linux(CentOS)运行 jar 包
  • Java入门14——动态绑定(含多态)
  • C# String系列(3):StringBuilder有诸多优势,它能代替String吗?
  • 信息安全工程师(80)网络安全测评技术与工具
  • YOLOv11融合IncepitonNeXt[CVPR2024]及相关改进思路
  • STM32学习之I2C的简介与学习
  • 蓝牙 SPP 协议详解及 Android 实现
  • 基于STM32的贪吃蛇游戏教学