024-第三代软件开发-TabView

news2024/10/3 20:31:00
头图

第三代软件开发-TabView

文章目录

  • 第三代软件开发-TabView
    • 项目介绍
    • TabView
      • 官方示例
    • 项目实际使用

关键字: QtQmlTabView关键字4关键字5

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

TabView

最近搭框架的时候,非常喜欢使用TabView,为啥呢,感觉方面,领导不喜欢了,OK,增加一页,currentIndex值改一下OK,那天领导心血来潮想换回来的时候,在改一下currentIndex值改一下OK,哈哈哈。说是这么说,不过按照我的代码洁癖,没用的代码是不会出现在项目工程里面的。

回归整体,官方对TabView的描述如下

TabView provides tab-based navigation model for your application. For example, the following snippet uses tabs to present rectangles of different color on each tab page

TabView 为您的应用程序提供基于选项卡的导航模型。 例如,以下代码片段使用选项卡在每个选项卡页上呈现不同颜色的矩形

官方示例

 TabView {
     Tab {
         title: "Red"
         Rectangle { color: "red" }
     }
     Tab {
         title: "Blue"
         Rectangle { color: "blue" }
     }
     Tab {
         title: "Green"
         Rectangle { color: "green" }
     }
 }

image-20230728223025222

在项目里面,肯定是不能这么用的,是不是,怎么也得和美工小姐姐友好交流一下,所以样式少不了,不过TabView 是Quick 1 带的产物,所以样式上,我们还是可以看到使用了style

 TabView {
     id: frame
     anchors.fill: parent
     anchors.margins: 4
     Tab { title: "Tab 1" }
     Tab { title: "Tab 2" }
     Tab { title: "Tab 3" }

     style: TabViewStyle {
         frameOverlap: 1
         tab: Rectangle {
             color: styleData.selected ? "steelblue" :"lightsteelblue"
             border.color:  "steelblue"
             implicitWidth: Math.max(text.width + 4, 80)
             implicitHeight: 20
             radius: 2
             Text {
                 id: text
                 anchors.centerIn: parent
                 text: styleData.title
                 color: styleData.selected ? "white" : "black"
             }
         }
         frame: Rectangle { color: "steelblue" }
     }
 }

如果到这里就结束,那估计看官们得在评论去骂死我,以前还百度百度呢,现在都直接把官方文档放进来就收费了,不过,官方文档确实香,强烈推荐!

项目实际使用

我在项目中用起来很简单,我现在就两个模块,一个登录模块,一个主核心模块,等登录成功了,就给我切换到主模块,当主模块发送退出信号的时候,就切回到登录模块,就这么简单,看看我的代码

    /*
      主UI框架
     */
    TabView
    {
        id:tabview_mainFrame
        anchors.fill: parent
        frameVisible: false
        tabsVisible: false
        currentIndex: 0
        Tab
        {
            id: loginTab
            /**
              登录窗口
              */
            Login
            {
                id:login_Component
                anchors.fill: parent
                visible: true
                onSignalEnterMainWindow: tabview_mainFrame.currentIndex = 1;
            }
        }
        Tab
        {
            /**
              主窗口
              */
            MainWindow
            {
                id:mainwindow_Component
                anchors.fill: parent
                onSignalReturnLogin: tabview_mainFrame.currentIndex = 0;
                onSignalLockScreen:
                {
                    tabview_mainFrame.currentIndex = 0;
                    tabview_mainFrame.getTab(tabview_mainFrame.currentIndex).item.lockScreen()
                }
                onSignalCloseSystem:
                {
                    keymonitor.closeSystem()
                }
            }
        }
    }

这里就说一点,就是在Tab1中,我们是无法通过ID访问Tab2中的控件的,因为Tab不是一上来全部都创建出来,只有当显示的时候,才会创建,所以要想夸Tab访问,需要使用getTab(index).item访问

这里咱们找个大冤种抄下作业

https://blog.csdn.net/qq_43248127/article/details/101311915

image-20230728224306710

内容也不多,咱们直接抄过来吧

属性别名方式

property alias tab_1: tab_1
...
tabView.tab_1.title = "UUUUU";

使用属性contentItem+children方式

tabView.contentItem.children[0].title = “UUUUU”;

使用成员函数getTab()方式

tabView.getTab(tabView.currentIndex).title = "UUUUU";

这里这位博主在语句的结尾还加了**;**,其实咱们在QML中是如果你一行只有一条语句是不用加的,当然,加上也没有啥问题。


博客签名2021

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

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

相关文章

开发趋势 Java Lambda 表达式 第一篇

开发趋势 Java Lambda 表达式 一,介绍 Java Lambda 表达式是自 Java 8以后引入的一种新的编程特性,它使得 Java 也能使用函数式编程的部分特性。Lambda 表达式提供了一种清晰且简洁的方式来代表一个方法接口(single method interface&#x…

【Unity3D日常开发】Unity3D的Color Space(颜色空间)【全解析】

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 Edit→Player Settings→Other Settings→Rendering→Color Sp…

app拉新渠道整合 一手地推、网推拉新平台整理

1.聚量推客 聚量推客自己本身是服务商,自己直营的平台,相对来说数据更好,我们也拿到了平台首码:000000 填这个就行,属于官方渠道 2.蓝猫推客 蓝猫推客我认为是比较又潜力的平台,经过几天测试数据和结算都…

【23级红细胞招新模拟训练(部分题解 不包含最后三题】

前言 提前说明 : 本人是蒟蒻 题解基本没考虑过优化 只求通过 写这篇题解仅仅是分享一下我的做法 使用的语言:cpp 6-1 题目 请编写函数,对三个整数按升序排序。 函数原型 void IntSortAsc3(int *x, int *y, int *z); 说明:参数 …

【鸿蒙软件开发】文本输入(TextInput/TextArea)

文章目录 前言一、输入框1.1 创建输入框单行输入框多行输入框单行和多行输入框的区别 1.2 设置输入框的类型有哪些类型基本输入模式(默认类型)密码输入模式 1.3 自定义样式设置无输入时的提示文本设置输入框当前的文本内容。添加backgroundColor改变输入…

基于减法平均优化的BP神经网络(分类应用) - 附代码

基于减法平均优化的BP神经网络(分类应用) - 附代码 文章目录 基于减法平均优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.减法平均优化BP神经网络3.1 BP神经网络参数设置3.2 减法平均算法应用 4.测试结果…

二叉树的各类实现判断

如何判断一颗二叉树是否是搜索二叉树? 搜索二叉树 每个子树头节点的左孩子比它小,右孩子比它大 经典的搜索二叉树没有重复的数 判断 将二叉树按照中序遍历,判断是否为升序 1、先将整棵树中序遍历再判断是否升序 //中序遍历public stat…

【STL】priority_queue(优先级队列)详解及仿函数使用(附完整源码)

目录 1. priority_queue介绍和使用1.1 priority_queue介绍1.2 priority_queue使用 2. 仿函数介绍3. priority_queue模拟实现 1. priority_queue介绍和使用 1.1 priority_queue介绍 优先级队列也是在<queue>里&#xff1a; 因此和queue一样&#xff0c;priority_queue也…

java头歌-java中的异常

文章目录 第一关第二关第三关第四关 第一关 第二关 题目要求&#xff1a; public static void main(String[] args) {Scanner sc new Scanner(System.in);try {int num1 sc.nextInt();int num2 sc.nextInt();/********* Begin *********/System.out.println(num1/num2);}…

基于stm32控制的4G模块在设备模式下通讯

这里的32控制其实和51的控制思路都是一样的&#xff0c;都是先利用一个网络助手将家里的无线网生成局域网&#xff0c;接着通过花生壳软件将局域网变成公共网&#xff0c;最后是利用串口助手&#xff0c;在4G模块的AT指令模式写入命令ATSOCKTCPC,公共网IP地址,公共网端口号&…

对话销售易CEO史彦泽:中国SaaS企业,利润和现金流从何而来?

导读&#xff1a;SaaS企业如何快速转身&#xff0c;活下来 “华为应改变思路和经营方针&#xff0c;从追求规模转向追求利润和现金流&#xff0c;保证渡过未来三年的危机。把活下来作为最主要纲领&#xff0c;边缘业务全线收缩和关闭&#xff0c;把寒气传递给每个人。” 2022年…

Pinia入门

1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 &#xff0c;是 Vuex 状态管理工具的替代品 2. 手动添加Pinia到Vue项目 后面在实际开发Vue医疗项目的时候&#xff0c;Pinia可以在项目创建时自动添加&#xff0c;现在我们初次学习&#xff0c;从零开始&#xff1a; …

Object.getPrototypeOf()

1、作用 获取指定对象的原型&#xff08;内部​​[[Prototype]]​​属性的值&#xff09;&#xff0c;如果没有继承属性&#xff0c;则返回 null function Animal() {}var ani new Animal();console.log(ani);console.log(Object.getPrototypeOf(ani));2、注意 在 ES5 中&a…

Http长连接同一个socket多个请求和响应如何保证一一对应?

HTTP/2引入二进制数据帧和流的概念&#xff0c;其中帧对数据进行顺序标识&#xff0c;如下图所示&#xff0c;这样浏览器收到数据之后&#xff0c;就可以按照序列对数据进行合并&#xff0c;而不会出现合并后数据错乱的情况。同样是因为有了序列&#xff0c;服务器就可以并行的…

视频去噪网络BSVD的实现

前些天写了视频去噪网络BSVD论文的理解&#xff0c;详情请点击这里&#xff0c;这两个星期动手实践了一下&#xff0c;本篇就来记录一下这个模型的实现。 这个网络的独特之处在于&#xff0c;它的训练和推理在实现上有所差别。在训练阶段&#xff0c;其使用了TSM&#xff08;T…

中国象棋棋盘识别

当象棋爱好者在挑战中国象棋残局或者在阅读象棋杀法书籍的时候遇到问题&#xff0c;往往需要通过象棋软件来辅助提示&#xff0c;此时要将该棋局在象棋软件中摆好&#xff0c;软件才能进行分析&#xff0c;为实现自动识别棋局图片&#xff0c;并导出为标准化FEN象棋文件格式&am…

Lec08 Page faults笔记总结

当一个用户应用程序触发了page fault&#xff0c;page fault会使用与Robert教授上节课介绍的相同的trap机制&#xff0c;将程序运行切换到内核&#xff0c;同时也会将出错的地址存放在STVAL寄存器中。 在SCAUSE&#xff08;注&#xff0c;Supervisor cause寄存器&#xff0c;保…

MyBatis-Plus实现逻辑删除[MyBatis-Plus系列] - 492篇

历史文章&#xff08;文章累计490&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 M…

[Spring] SpringBoot2 简介(二)—— 高级配置

目录 一、Conditional 注解 1、SpringBoot 如何获取 Bean 对象 2、SpringBoot 创建 Condition 类 3、切换内置 web 服务器 二、EnableXXX 注解 1、SpringBoot 不能直接获取其他 jar 包/工程中的 Bean 2、原因分析 3、封装 Import 4、Import 注解 5、SpringBoot 自动配…