首页 > 其他分享 >【QT】容器类控件

【QT】容器类控件

时间:2024-07-12 10:58:22浏览次数:15  
标签:控件 Widget QT 容器 标签 label ui QWidget

容器类控件

1. Group Box

使用 QGroupBox 实现⼀个带有标题的分组框。可以把其他的控件放到里面作为⼀组。这样看起来能更好看⼀点。

注意, 不要把 QGroupBox 和 QButtonGroup 混淆. (之前在介绍 QRadionButton 的时候提到了 QButtonGroup ).

核心属性:

在这里插入图片描述

分组框只是⼀个⽤来 “美化界⾯” 这样的组件, 并不涉及到⽤⼾交互和业务逻辑. 属于 “锦上添花” .

代码示例:给⻨当劳案例加上分组框

1)在界⾯上创建三个分组框, 并且在分组框内部创建下拉框和微调框.

在这里插入图片描述

2)编写 widget.cpp, 添加初始化下拉框的代码

			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("雪碧");
			}

2. Tab Widget

使用 QTabWidget 实现⼀个带有标签页的控件, 可以往里面添加⼀些 widget;进一步的就可以通过标签页来切换。

核心属性:

在这里插入图片描述

核心信号:

在这里插入图片描述

代码示例:使⽤标签⻚管理多组控件

1)在界⾯上创建⼀个 QTabWidget , 和两个按钮。

按钮的 objectName 为 pushButton_add 和 pushButton_remove

在这里插入图片描述

注意:

  • QTabWidget 中的每个标签⻚都是⼀个 QWidget
  • 点击标签⻚, 就可以直接切换.
  • 右键 QTabWidget , 可以添加标签⻚或者删除标签⻚.

2)编写 widget.cpp, 进⾏初始化, 给标签⻚中放个简单的 label

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

			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);
			}

3)编写按钮的 slot 函数

  • 使⽤ count() 获取到标签⻚的个数.

  • 使⽤ addTab 新增标签⻚.

  • 使⽤ removeTab 删除标签⻚.

  • 使⽤ currentIndex 获取到当前标签⻚的下标.

  • 使⽤ setCurrentIndex 切换当前标签⻚.

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

标签:控件,Widget,QT,容器,标签,label,ui,QWidget
From: https://blog.csdn.net/YoungMLet/article/details/140245147

相关文章

  • 合宙 Air780E模块 AT 指令 MQTT连接
    固件说明重启模块//txAT+RESET//rxAT+RESETOK^boot.rom'v'!\nRDY^MODE:17,17+E_UTRANService+CGEV:MEPDNACT1+NITZ:2024/07/10,08:33:44+0,0查询模块版本信息//txAT+CGMR//rxAT+CGMR+CGMR:"AirM2M_780E_V1161_LTE_AT"OK基本流......
  • Qt开发: 推荐一个缓冲队列操作类的实现
    一.缓冲队列的背景    缓冲队列主要应用在生产者和消费者之间,保证数据的准确不丢失,提高效率。举个例子:如上图,假设点击按钮生成一个方块,方块生产出来需要耗时1s,生成完毕后显示在界面上;然后点击10下按钮,要生产10个按钮预计耗时10s。二.分析问题    点击按......
  • 基于QT开发的反射内存小工具
    前言最近项目需要需要开发一个反射内存小工具,经过2天的修修改终于完成了。界面如下:功能简介反射内存指定地址数据读取反射内存指定地址数据写入反射内存指定地址数据清理十进制、十六进制、二进制数据相互转换部分代码voidRfmMain::setWOtherEditData(constQStri......
  • WeChat算法(CCD/RQT)08分析
    以上内容来自AI生成,仅供学习研究交流使用CCD(ConstantClientData)CCD在微信的登录过程中的主要作用是通过设备指纹和会话信息来识别和验证设备。具体的实现步骤可能如下:设备指纹收集:收集设备的硬件和软件信息,如设备型号、操作系统版本、浏览器信息、分辨率、时区等。收......
  • 实战Qt开发WordBN笔记软件#02 通过Gitee创建YourWordBN仓库;学会GIT常用指令,并实现多分
    01背景【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件;WordBN基于VS2019、Qt6.5开发,使用QtQuick(QML)开发语言。本课程将以【WordBN字远笔记】的界面为实战基础,详细介绍如何基于Qt/QML开发语言,从零开始开发一套真正的程序,包括国际化、版本发布、安装包制作等项目......
  • C# Winform之propertyGrid控件分组后排序功能
    在WinForms的PropertyGrid控件中,你可以通过多种方式对属性进行排序,包括按类别(Category)排序以及按属性名称排序。默认情况下,PropertyGrid控件会根据[Category]和[DisplayName]属性装饰器对属性进行分组和排序。如果你想要自定义排序规则,你可以通过以下几种方法:使用......
  • C# Winform之propertyGrid控件使用详解和分组设置
    PropertyGrid控件在WinForms中是一个非常有用的工具,它允许用户查看和编辑一个对象的属性。这个控件非常适合用于配置对话框或任何需要动态显示对象属性的地方。下面我会详细介绍PropertyGrid的使用方法和如何对属性进行分组。使用详解1.添加 PropertyGrid 控件在Vi......
  • 使用pyqt5制作简单计分桌面应用
    这是一个自己写的使用pyqt5制作简单计分桌面应用的实例,希望对大家有所帮助。制作这个小程序的起因是因为有个艺术类比赛需要设计这个一个桌面程序,方便统分。(此程序尚存在部分小bug,请慎用,公开代码只为让小白熟悉如何开发一个简单的桌面计分程序)ui设计众所周知,使用pyqt5开发可以......
  • QtQuick.Dialogs中的FileDialog设置默认目录的问题
    在QML中,假如想要使用文件浏览器选择文件或者文件夹时。可以使用FileDialog。FileDialog有个属性folder,设置好路径之后,当你打开fileDialog时,fileDialog当前定位到的路径就是你设置的路径。但是这个folder的设置有点问题,和路径的层级有关系假如你的目标路径是大于等于三级的(比如......
  • Qt入门(二):Qt的基本组件
    目录Designer程序面板1、布局Layout打破布局贴合窗口2、QWidget的属性 3、Qlabel标签显示图片  4、QAbstractButton按钮类按钮组 5、QLineEdit单行文本输入框6、ComboBox组合框7、若干与数字相关的组件Designer程序面板Qt包含了一个Designer程序,用于通......