Qt Quick - TabBar

news2024/9/30 23:34:15

Qt Quick - TabBar使用总结

  • 一、概述
  • 二、调整选项卡
  • 三、Flickable标签
  • 三、定制化

一、概述

TabBar其实就是选项卡,TabBar是由TabButton控件填充,TabBar可以与任何提供currentIndex属性的布局或容器控件一起使用,如StackLayout或SwipeView。TabBar其实只是一个导航控件,就类似于一组RadioButton用来切换一个一个的。TabBar并不和这个内容的容器一起绑定使用的,TabBar和Qt里面的QTabWidget不一样,QTabWidget是把那个导航和内容容器结合在一起的,而TabBar已经分离开这些逻辑啦,我们也可以用这个TabBar来当RadioButton用也未尝不可。

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    TabBar {
        id: bar
        width: parent.width
        TabButton {
            text: qsTr("Home")
        }
        TabButton {
            text: qsTr("Discover")
        }
        TabButton {
            text: qsTr("Activity")
        }
    }

    StackLayout {
        id:stackLayout
        anchors.topMargin: 41
        anchors.fill: parent
        currentIndex: bar.currentIndex

        Item {
            id: homeTab
            Text {
                id: homeLabel
                x: 308
                y: 196
                text: qsTr("home")
                anchors.verticalCenter: parent.verticalCenter
                anchors.horizontalCenter: parent.horizontalCenter
            }
        }
        Item {
            id: discoverTab
            Text {
                id: discoverLabel
                x: 308
                y: 196
                text: qsTr("discover")
                anchors.verticalCenter: parent.verticalCenter
                anchors.horizontalCenter: parent.horizontalCenter
            }
        }
        Item {
            id: activityTab
            Text {
                id: activityLabel
                x: 308
                y: 196
                text: qsTr("activity")
                anchors.verticalCenter: parent.verticalCenter
                anchors.horizontalCenter: parent.horizontalCenter
            }
        }
    }

}

在这里插入图片描述

如上所示,TabBar通常用一组静态的选项卡按钮填充,这些选项卡按钮被内联定义为选项卡栏的子元素。还可以在运行时动态地添加、插入、移动和删除元素。可以使用itemAt()或contentChildren来访问元素项。

二、调整选项卡

默认情况下,TabBar调整其按钮大小以适应控件的宽度。可用空间平均分配给每个按钮。可以通过为按钮设置一个显式的宽度来覆盖默认的缩放行为。这个就会让Bar大小适应内容大小。
在这里插入图片描述

下面的例子演示了如何保持每个选项卡按钮的隐式大小,而不是调整大小以适应选项卡栏:

  TabBar {
      width: parent.width
      TabButton {
          text: "First"
          width: implicitWidth
      }
      TabButton {
          text: "Second"
          width: implicitWidth
      }
      TabButton {
          text: "Third"
          width: implicitWidth
      }
  }

三、Flickable标签

如果按钮的总宽度超过了标签栏的可用宽度,它会自动变成可闪烁的。

TabBar {
      id: bar
      width: parent.width

      Repeater {
          model: ["First", "Second", "Third", "Fourth", "Fifth"]

          TabButton {
              text: modelData
              width: Math.max(100, bar.width / 5)
          }
      }
  }

三、定制化

在这里插入图片描述
这个定制化其实就只是定制的TabBar的最外层的边框,内容还需要对 TabButton 美化

 import QtQuick 2.12
  import QtQuick.Controls 2.12

  TabBar {
      id: control

      background: Rectangle {
          color: "#46a2da"
      }

      TabButton {
          text: qsTr("Home")
      }
      TabButton {
          text: qsTr("Discover")
      }
      TabButton {
          text: qsTr("Activity")
      }
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扬帆优配|鼎智科技大涨22%登上龙虎榜 新股“赚钱效应”再现

上市第三天,鼎智科技(873593)因大涨22%登上“龙虎榜”,北交所发表的数据显示,组织现身买入榜,同时卖出榜也呈现了组织座位。 鼎智科技上市后接连上涨,使得北交所新股呈现久违的“赚钱效应”。从近期北交所新股的发行结…

从高考开始跌跌撞撞到目前的研究生拟录取

文章目录 前言一、高考的失利二、本科生活三、研究生初试的力不从心四、研究生复试的措手不及后话 前言 其实我一直都很想写写关于我的学习生涯之类的记录,但是不知道该以何种心态来书写… 看到学信网的拟录取通知当时其实是有点麻木的,感觉有很多话想说…

Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)

目录 1 Gym介绍2 Gym安装3 基本指令3.1 make()3.2 reset()3.3 step()3.4 close() 4 常见问题参考资料 1 Gym介绍 强化学习是在潜在的不确定复杂环境中,训练一个最优决策指导一系列行动实现目标最优化的机器学习方法。自从AlphaGo的横空出世之后,确定了强…

从promise到await

在之前的这篇文章中,已经讲完了从异步操作到promise的诞生,但是promise也仅仅是做到了异步操作和结果的分离,当我们有多个异步操作,且结果前后有依赖的时候,不可避免的,就会出现一系列的.then方法。还是不大…

【JS每N日一练】 将CSDN文章自动生成Markdown列表

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 分析及编码页面分析枚举列表处理li,获取Markdown完成功能拼装 2️⃣ 完整代码及运行结果完整代码运行结果 🛬 总结 🛫 问题 描述 作为程序员必备素质-懒,今天又给自己了一个造了个需…

QGIS--开发OpenSCENARIO动态场景(一)--Ubuntu20.04 安装QGIS

qgis的git: GitHub - qgis/QGIS: QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS) qgis的官网:Welcome to the QGIS project! qgis插件包下载地址:https://plugins.qgis.org/plugins/ 1.Prerequisi…

java IO流_2

目录 字节缓冲流 序列化 使用对象流实现序列化 标准输入输出流 转换流 打印流 PrintStream PrintWriter properties读写文件 字节缓冲流 字节流 import java.io.FileInputStream; import java.io.FileOutputStream;public class FileCopy {public static void main(Str…

年薪30W+,待遇翻倍,我的经历值得每个测试人借鉴

从自考大专到出走公司,从半年无业露宿深圳北站,从8k…到11.5k…再到20k,我的经历值得每个测试人借鉴 或许学历并没有那么重要 12年高考之后,在朋友的介绍下(骗了过去),没有好好的读大学&#x…

java mysql高校后勤管理系统的设计与开发 宿舍公寓管理

1.用户管理子系统:采用通过用户密码的登录机制,管理员登录后可以修改个人信息(用户名、密码、姓名、联系方式),具有楼的属性,只能对所管辖宿舍楼进行查询、修改等操作。 2.宿舍信息管理子系统&a…

上海出台新政数字经济、人工智能利好

利好一、上海印发 《上海市推进算力资源统一调度指导意见》的通知 数字经济、人工智能的利好不断。 19日,上海市经济信息化委印发《上海市推进算力资源统一调度指导意见》的通知。 其中提到: 到2023年底,依托本市人工智能公共算力服务平台…

【U8+】win10/11系统注册用友U8硬加密

【问题需求】 由于用友U813.0及之前版本都是硬加密, 并且注册的时候严格要求使用IE浏览器。 但是随着系统的升级,绝大多数的都开始使用win10/11系统。 并且IE浏览器已经不支持win10/11系统, 取而代之的是Edge浏览器。 【经验分享】 以下分享…

扬帆优配|放量跌停和缩量跌停的区别?哪个更好?

投资者在买卖股票的过程中股票跌停的话,一般会呈现两种状况:一种是放量跌停,一种是缩量跌停。很多投资者不明白两者到底有什么差异,那么放量跌停和缩量跌停的差异是什么?哪个更好?下面就由扬帆优配有为我们…

使用node版本管理器gnvm

目录 一、官网 二、下载 三、查看本机node安装地址 四、将gnvm放到node安装目录 五、安装其他版本node(以管理员身份打开CMD) 六、使用指定版本(以管理员身份打开CMD) 七、查看当前版本(以管理员身份打开CMD&…

Spring依赖注入的三种方式使用及优缺点

初学Spring的时候,我们从Spring容器中获取Bean对象都是通过bean标签先将Bean对象注册到Spring容器中,然后通过上下文对象congtext的getBean方法进行获取,显然这种方法较为麻烦,所以有了更简单的存方法:五大类注解;取方…

应急响应 - Windows用户分析,Windows隐藏账号分析,Windows克隆账号分析

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 Windows账户分析 一、普通用户二、隐藏用户1、lusrmgr.msc2、注册表 三、克隆账号 攻击者…

mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符

背景 今天出现了一个bug,在数据库中我们将订单表中的order_no从之前的bigint(20)改成varchar(20)后,原有的代码逻辑在进行时查询时,之前是以Long类型传参查询的。 select * from order_main where order_no16541913435669023debug时的时候发现…

2023年湖北安全员ABC报名条件和报名资料是什么?

一、湖北安全员ABC报名条件要求: 1.安全员A证针对的是企业主要负责人,包括法定代表人、总经理(总裁)、分管安全生产的副总经理(副总裁)、分管生产经营的副总经理(副总裁)、技术负责…

全景丨0基础学习VR全景制作,平台篇第八章:全局功能-开场地图

大家好欢迎观看蛙色平台使用教程 功能位置示意 一、本功能将用在哪里? 开场地图分为两种,分别是高德地图和手绘地图。 高德地图点位目前系统自动借用高德官方地图位置,手绘地图点位需手动添加 高德地图展示 高德地图展示 二、如何使用本功…

JaveEE UDP 与 TCP 原理

这篇博客真的很详细很详细很详细,不打算试试看吗 > 。o 文章目录 JaveEE & UDP 与 TCP 原理1. 应用层协议(自定义组织格式)2. 传输层UDP协议2.1 数据报报文格式2.1.1 源端口与目的端口2.1.2 报文长度和校验和 3. 传输层TCP协议3.1 TCP…

MySQL 主键自增也有坑?

在上篇文章中,松哥和小伙伴们分享了 MySQL 的聚簇索引,也顺便和小伙伴们分析了为什么在 MySQL 中主键不应该使用随机字符串。但是主键不用随机字符串用什么?主键自增?主键自增就是最佳方案吗?有没有其他坑?…