当前位置: 首页 > 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.lryc.cn/news/479622.html

相关文章:

  • 打印菱形(C语言)
  • Oracle 19c 中启用 scott 用户
  • git commit 校验
  • 【AtCoder】Beginner Contest 377-B.Avoid Rook Attack
  • 江协科技STM32学习- P38 软件SPI读写W25Q64
  • 【Triton 教程】低内存 Dropout
  • npx创建项目时,error fetch failed.TypeError: fetch failed
  • 《Kotlin实战》-附录
  • yelp数据集上识别潜在的热门商家
  • 【Linux】进程信号全攻略(一)
  • linux文件重命名
  • 如何选择适合的AWS EC2实例类型
  • 【Uniapp】Uniapp Android原生插件开发指北
  • 【随手笔记】FLASH-W25Q16(三)
  • 2024软件测试面试热点问题
  • 【JAVA】java 企业微信信息推送
  • 介绍一下数组(c基础)(smart 版)
  • Java项目实战II基于Spring Boot的个人云盘管理系统设计与实现(开发文档+数据库+源码)
  • 探索数据科学与大数据技术专业本科生的广阔就业前景
  • 微服务架构面试内容整理-Zuul
  • 解决Knife4j 接口界面UI中文乱码问题
  • 微服务架构面试内容整理-Sleuth
  • Go语言的接口示例
  • 【Apache ECharts】<农作物病害发生防治面积>
  • 基于vue3实现的聊天机器人前端(附代码)
  • DICOM标准:深入详解DICOM医学影像中的传输语法
  • sql server 文件备份恢复
  • Gradle命令编译Android Studio工程项目并签名
  • lua入门教程:垃圾回收
  • 基于前后端分离架构,SaaS云平台与私有云部署的智慧校园源码,java电子班牌源码