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

Qml-TabBar类使用

Qml-TabBar类使用

TabBar的概述

  1. TabBar继承于Container 由TabButton进行填充,可以与提供currentIndex属性的任何容器或布局控件一起使用,如StackLayout 或 SwipeView;
  2. contentHeight : real:TabBar的内容高度,用于计算标签栏的隐式高度
  3. contentWidth : real:TabBar的内容宽度,用于计算标签栏的隐式宽度
  4. position : enumeration:如果TabBar用于Application或Page 组件,TabBar的位置

SplitView的实例代码

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts

//TabBar继承于Container, 由TabButton填充,可于提供currentIndex属性的容器或者布局器使用,如StackLayout 或 SwipeView

Item {
    id: idTabBarRoot

    Rectangle{
        anchors.fill: parent

        TabBar{
            id:idTabBar
            //指明TabBar的高度和宽度
            contentHeight: 40
            contentWidth: parent.width

            //如果没有明确宽度,TabButton会均分或者由TabButton的隐式宽度的和来推导TabBar的宽度
            TabButton{
                text: ("Tab1")
                //width: 100
                implicitWidth: 100
                onClicked: {
                    console.log("tabButton index = ",TabBar.index);
                }
            }

            TabButton{
                //width: 100
                implicitWidth: 100
                text: ("Tab2")
            }

            TabButton{
                //width: 100
                implicitWidth: 100
                text: ("Tab3")
            }

            onCurrentIndexChanged: {
                console.log("cur index = ",idTabBar.currentIndex,"contentWidth = ",idTabBar.contentWidth);
                console.log("conttentHeight = ",idTabBar.contentHeight)
                var child = idTabBar.contentChildren;               //返回一个list 数据
                console.log("child size = ",child.length);          //可以使用list 的length属性获取 list的长度
            }

            background:Rectangle{
                anchors.fill: parent;
                color:"yellow"
                border.width:1
                border.color: "red";
            }
        }

        //栈布局,只显示currentIndex对应的Item
        StackLayout{
            //需要在StackLayout中做布局,控制StackLayout的区域
            anchors.top: idTabBar.bottom
            anchors.bottom: parent.bottom
            width: parent.width

            currentIndex: idTabBar.currentIndex

            //插入于TabBar 中TabButton 对应的内容区域
            Text{
                text: "I am Tab1 "
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.AlignHCenter;
            }
            Text{

                text: "I am Tab2 "
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.AlignHCenter;
            }
            Text{

                text: "I am Tab3 "
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.AlignHCenter;
            }

        }
    }
}

TabBar实例代码运行结果如下:

在这里插入图片描述


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

相关文章:

  • 建造者模式Builder——优雅的使用姿势
  • Java 语言的起源发展与基本概念(JDK,JRE,JVM)
  • 九、Spring Boot集成Spring Security之授权概述
  • AI自动化剪辑工具:可将长视频中精彩部分提取合成短视频
  • MySQL 中的排序:索引排序与文件排序
  • Android 13 Aosp 默认允许应用动态权限
  • 解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统
  • Qt桌面应用开发 第八天(读写文件 文件编码 文件流)
  • 路由引入中次优路由和路由环路问题
  • Linux:进程的概念
  • c/c++ 用easyx图形库写一个射击游戏
  • 探索C/C++的奥秘之C++中的继承
  • 【C++】 list接口以及模拟实现
  • 【AI技术赋能有限元分析应用实践】pycharm终端与界面设置导入Abaqus2024自带python开发环境
  • 美畅物联丨如何通过ffmpeg排查视频问题
  • 直播实时美颜平台开发详解:基于视频美颜SDK的技术路径
  • go 和java 编写方式的理解
  • 数据安全与隐私保护:大数据时代的挑战与机遇
  • 华为海思2025届校招笔试面试经验分享
  • 关于Spring基础了解
  • SOLID原则学习【目录篇】
  • Ubuntu20.04下安装VSCode(配置C/C++开发环境)和设备树插件用于嵌入式开发
  • ESP32学习笔记_Peripherals(1)——UART
  • 企业建站高性能的内容管理系统
  • Swagger记录一次生成失败
  • 关于IDE的相关知识之一【使用技巧】