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

QML控件--Container

文章目录

  • 一、控件基本信息
  • 二、控件说明
  • 三、属性成员
  • 四、成员函数

一、控件基本信息

Import Statement: import QtQuick.Controls 2.14
Since: Qt 5.7
Inherits: Control
Inherited By: DialogButtonBox, MenuBar, SwipeView, and TabBar


二、控件说明

Container(容器):是类容器用户界面控件的基本类型,允许动态插入和删除项;

  • 项被静态地声明为Container的子项,但也可以动态地添加、插入、移动和删除项;
  • 容器中的项可以使用itemAt()contentChildren来访问;
  • 大多数容器都有“当前”项的概念,当前项是通过currentIndex属性指定的,并且可以使用只读的currentItem属性访问;

下面的示例演示了向TabBar动态插入项(TabBar是Container的子类之一)
在这里插入图片描述

import QtQuick 2.12
import QtQuick.Controls 1.4
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.0

ApplicationWindow{
    visible: true;  //ApplicationWindow默认不可见
    width: 1280;
    height: 720;
    Row {
        anchors.fill: parent;
        TabBar {
            id: tabBar

            currentIndex: 0
            width: parent.width - addButton.width - btnDelete.width

            TabButton { text: "TabButton" }
        }

        Component { //组件
            id: tabButton
            TabButton { text: "TabButton" }
        }

        Button {
            id: addButton
            text: "+"
            flat: true
            onClicked: {
                //Component::createObject(tabBar)可以创建Component组件对象
                tabBar.addItem(tabButton.createObject(tabBar))  //addItem向容器中增加子项
                console.log("added:", tabBar.itemAt(tabBar.count - 1))
            }
        }

        Button {
            id: btnDelete
            text: "-"
            flat: true
            onClicked: {
                tabBar.removeItem(tabBar.itemAt(tabBar.count-1));   //removeItem移除容器中的子项,itemAt可以索引容器中的子项
            }
        }
    }

}


三、属性成员

属性说明
contentChildren : list<Item>内容子项的列表,contentChildren不包含非可视 QML 对象,插入或移动项目时重新排序
contentData : list<Object>内容数据列表,contentData确实包含非可视 QML 对象,插入或移动项目时不会重新排序
contentHeight : real内容尺寸,用于计算容器的总隐含尺寸 ,除非显式覆盖,否则内容尺寸会根据容器中项目的隐式尺寸自动计算
contentModel : model项目的内容模型,内容模型用于可视化项目
contentWidth : real内容尺寸,用于计算容器的总隐含尺寸,除非显式覆盖,否则内容尺寸会根据容器中项目的隐式尺寸自动计算
count : int项目的数量
currentIndex : int当前项目的索引
currentItem : Item当前项目

四、成员函数

属性说明
void addItem(item)添加一个项目
void decrementCurrentIndex()递减容器的当前索引
void incrementCurrentIndex()递增容器的当前索引
void insertItem(index, Item item)在 index 处插入一个项目
Item itemAt(index)返回 index 处的项目,如果不存在则返回 null
void moveItem(from, int to)将 from 处的项目移动到 to
void removeItem(item)移除并销毁指定的项目
void setCurrentIndex(index)设置容器的当前索引
void takeItem(index)删除并返回索引处的项目,项目的所有权转移给调用者

http://www.kler.cn/a/9837.html

相关文章:

  • Spring框架之适配器模式 (Adapter Pattern)
  • Redis - String 字符串
  • 论文分享:DiskANN查询算法
  • 【Pikachu】越权访问实战
  • MySQL中的事务与锁
  • 大模型就业收入高吗?大模型入门到精通,收藏这篇就够了
  • 每日一问-ChapGPT-20230414-中医基础-四诊之问诊
  • vue3 history模式配置及nginx服务器配置
  • gRPC源码解读 传输层数据处理流程
  • 【spring】通过抽象类与ApplicationContext编写扩展性强的业务逻辑
  • 使用国密SSL证书,实现SSL/TLS传输层国密改造
  • 【你听说了吗】GPT-5据说已经学完了世界上现存所有的视频
  • 电脑自动录屏软件哪个好用 电脑自动录屏怎么设置
  • 剑指 Offer 49. 丑数
  • 【计算机组成原理 - 第二章】系统总线(完结)
  • css 导航栏效果
  • ICPC SWERC 2020 K - Unique Activities(SAM记录子串第一次结束位置 or SAM + hash)
  • ​分析新特征背后的内在逻辑,才能把握未来一段时期的科技发展新方向
  • Python 进阶指南(编程轻松进阶):十二、使用 Git 组织您的代码项目
  • springboot项目配置文件不允许出现明文密码的解决方法(jasypt使用方法)
  • ChatGPT 指令大全
  • 力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 记忆法/备忘录)
  • 低静态电流-汽车电池反向保护系统的方法
  • 第八章 Vite4+Vue3+Vtkjs 完整demo演示
  • 刘二大人《Pytorch深度学习实践》第十一讲卷积神经网络(高级篇)
  • 工厂模式白话 - 3种都有哦