【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

这篇具有很好参考价值的文章主要介绍了【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Qt quick基础1(包含基本元素Text Image Rectangle的使用)

前言

最近需要看Qt的代码,虽然之前也接触过Qt,但是当时是使用可推拽式的ui设计,虽然体验很好,但是需要看的代码使用的是Qt quick,正好顺便学习一下,记录在此,以便之后忘记作回顾之用。

qt中有直接设计ui的拖拽式的widget,为什么还需要Qtquick?

Qt中设计UI的拖拽式的Widget,例如使用Qt Designer创建的窗口和控件等,这些Widget提供了一个方便且易于学习的方式来构建传统的图形用户界面(GUI),并且是使用C++编写的。

然而,随着移动端和现代化应用程序的兴起,GUI开发也面临着新的挑战。为了适应不同的屏幕尺寸和设备环境,并实现更快、更流畅的交互效果,Qt引入了Qt Quick框架。

Qt Quick是一种基于QML语言的声明式UI设计语言,它使用JavaScript来处理用户输入和逻辑控制,以及OpenGL进行渲染。Qt Quick提供了一种快速、灵活、高性能和可重用的方式来构建现代化应用程序的用户界面。与传统的Widget相比,Qt Quick具有以下优点:

  1. 高度可定制性:Qt Quick提供了各种内置的UI组件和布局,同时也支持自定义UI组件的创建,使得UI设计师和开发者能够更加灵活地实现他们的设计需求。
  2. 高性能:Qt Quick使用OpenGL进行渲染,能够在多种平台上实现高性能的UI渲染。
  3. 跨平台支持:Qt Quick支持在多种平台上构建现代UI,包括桌面、移动和嵌入式系统。
  4. 易于学习和使用:QML是一种声明式UI设计语言,与其他的UI设计语言相比,具有更低的学习曲线。

因此,尽管Qt中可以使用Widget来构建传统GUI,但Qt Quick提供了一个现代、高效且易于学习和使用的方式来构建现代化应用程序的用户界面。

QML语言

QML是一种声明性语言,用于描述应用程序的用户界面。它将用户界面分解为更小的元素,这些元素可以组合成组件。QML描述了这些用户界面元素的外观和行为。这个用户界面描述可以用JavaScript代码进行充实,以提供简单但也更复杂的逻辑。从这个角度来看,它遵循HTML-JavaScript模式,但QML从一开始就被设计为描述用户界面,而不是文本-文档。

Qt 版本

截至2022年5月3日,qt已经推出了6.6版本,但我使用的Qt5.15和Qt6.2两个版本,这两个版本都是LTS版本,也就是长期支持版本。在我看来,可能版本的不同会造成某些麻烦,如果你去看2012、2015年甚至2019年的Qt教程,可能其中有些内容已经不适用于现在的Qt版本了,当然这些教程大部分仍是适用的。

版本:win11+Qt5.15/6.2,或许选择6.4,6.5也是相当可以的,因为在创建Qt quick项目时,要求最低版本是6.2

创建一个Qt quick项目

  1. 打开Qt Creator的欢迎界面,在下面找到教程,你会在里面找到Qt quick创建的一个教程,

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

  1. 打开之后,你会发现这个教程很详细地在教你如何创建项目,并给出了一些实例,可能第一次看还不能直接有能力消化教程上的东西(好吧,是我菜),但至少学会了如何创建一个空的Qt quick项目

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

Qt quick的Helloworld

  1. 创建完一个空项目之后,你就可以直接运行了,运行后发现是个空白的有着“hello world”标题的窗口

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

  1. 我们可以在里面添加元素使其能够显示“hello world”的文字

    Text{
            text:"<h2>Hello world<h2>" //这里使用了html标签来更改字体的大小
            x:100;y:100 //设置位置,从左上角计算
            color: "darkgreen" //设置颜色
        }
    

    这里添加的是一个Text元素,顾名思义就是显示文本的元素。上面这段代码要放在Window这段代码之内,运行得到如下图所示的结果。

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

利用Image元素加入图片

  1. 上面讲述了Text元素,接下来我们来尝试一下Image元素,它是用来插入和设置图片的,可以加载本地资源中的图片也可以加载url地址的资源图片,下面就以网络图片为例

      Image{
            x:12;y:250
            source: "https://ts1.cn.mm.bing.net/th/id/R-C.c1ef7c28ec0c3a03671bf8c5b84824a9?rik=gtgH8z39ogolSA&riu=http%3a%2f%2fimg.touxiangwu.com%2fuploads%2fallimg%2f230101%2f1_010120010R534.jpg&ehk=%2bP%2fA9Bc1Xw28uBxAFWEP0qGpscER%2bd8hq%2flkynX4qUw%3d&risl=&pid=ImgRaw&r=0"
            //可以加载网页图片
        }
    

    上面图片是我在网上随便找的,Image元素的用法当然远不止此,这里仅仅是做个展示。运行得到下面的结果

    【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

利用Rectangle元素作button

Rectangle是一个长方形区域,里面可以嵌套各种各样的元素以达到各种效果。

 Rectangle{
        id:button //调用这个矩形区域的唯一标识符,在程序中不允许重复
        x:500;y:300
        width:116;height:26
        color: "lightsteelblue"
        border.color: "slategrey" //设置边界颜色
        Text {  //嵌套Text元素
            anchors.centerIn: parent  //此处的parent即为Rectangle
            text: qsTr("start") //文本
        }
        MouseArea{ //鼠标区域元素
            anchors.fill: parent //鼠标区域即为整个Rectangle
            onClicked: {
                status.text ="Button clicked" //当被按下时,status的文本变为“button clicked”,staus这段代码还没涉及
            }
        }

    }

上述又出现了一个新的元素MouseArea,这个元素即是鼠标区域,用来响应鼠标的各种事件。

 Text{
        id:status //id
        x:500;y:350
        width: 116;height:26
        text: "waiting..."
        horizontalAlignment: Text.AlignHCenter
    }

这段代码和上述的代码所形成的效果是,上段的Rectangle被按下后,下段文本由“Waiting”变为“Button Clicked”,效果如下

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

上面代码中有一个“Onclicked”,这是一个信号处理器,当一个属性更改值时,会发出一个信号来告知这个更改,要获取这个信号,只需要创建一个信号处理器(signal handler),它使用“onChanged”语法来命名。例如,Rectangle元素拥有 width和color 属性下面的代码中我们在一个Rectangle对象中定义了两个信号处理器onWidthChanged和onColorChanged,无论何时属性被修改了,都会自动调用它们。

截至现在,如果运行项目的话,应该是这个样子的。

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

Qt Assistant使用

Qt在安装时都会有Assistant助手,它可以很方便的帮我们定位所要查找和使用的各种东西。

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

例如,我需要查找map相关的操作,就可以直接搜索“map”,并找到对应模块查看

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

当然,我也是刚刚学习,其实还不太会使用,属于是边学边写博客。更多的Qml元素也可以在这里面找到。

如,我需要查找map相关的操作,就可以直接搜索“map”,并找到对应模块查看

【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)

当然,我也是刚刚学习,其实还不太会使用,属于是边学边写博客。更多的Qml元素也可以在这里面找到。

小结

本文简单讲述Qt quick的项目创建以及几个简单的元素使用,能够实现加载图片,按钮、文本的显示与更改,并提及了Qt 助手的使用。

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。文章来源地址https://www.toymoban.com/news/detail-460640.html

到了这里,关于【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Qt之Quick模块】8. Quick基础、布局管理、布局管理器

    Qt Quick编程,提供了多种布局方式。 如,静态布局,可以使用组件的x、y属性进行设置,或者进行绑定。 还可以使用锚anchors进行布局。 此外,还可以使用定位器以及定位管理器为多组件进行布局。 但使用布局管理器和锚会占用内存和实例化时间,若使用x、y、width、height等属

    2024年01月25日
    浏览(35)
  • QT quick基础:组件gridview

    组件gridview与android中gridview布局效果相同。 一、下面记录qt quick该组件的使用方法。 方法一: 运行效果 方法二: 列表和代理分开。 效果图如上。 我自己的需求,点击gridview的item,修改对应item的图片,并且改变该item的字体颜色。上述代码中,Image没有点击信号,gridview也没

    2024年01月19日
    浏览(43)
  • HarmonyOS | UI开发 (一) | 基础组件(Text/Span,TextInput/TextArea,Button,Image)

    个人博客主页 : 谭祖爱 技术博客 项目实例地址 : RecordHarmonyOSProject 鸿蒙操作系统作为华为推出的全新分布式操作系统,为开发者提供了丰富的组件库,使得开发者能够快速构建功能强大、界面美观的应用程序。本文将深入探讨鸿蒙应用开发中常用的组件,帮助开发者更好

    2024年03月11日
    浏览(31)
  • 基于Huggingface完成text-to-image的文本生成图像实例(AIGC)--零基础

    AIGC指人工智能生成创造力(Artificial Intelligence Generated Creativity,AIGC),是一个涵盖多个领域的跨学科领域,它将人工智能和计算机科学与创造力和艺术结合起来,旨在通过算法生成具有创造力和艺术性的作品,例如图像、音乐、文本等。文本到图像转换就是其中一个重要的方

    2024年02月15日
    浏览(55)
  • 【五一创作】VimPlug插件配置

    目录 Install Question Q1:字体乱码 Q2:插件配置 Q3:安装扩展插件 Q4:查看安装插件状态 Q5:查看默认插件 Q6:卸载插件 Q7:增加用户配置 Github地址:GitHub - chxuan/vimplus: An automatic configuration program for vim Q1:字体乱码 打开终端,右键,配置文件首选项,配置,字体栏目选择 Dro

    2024年02月02日
    浏览(80)
  • 【五一创作】红黑树数据结构

    现在JAVASE中HashMap中底层源码是由数组+链表+红黑树进行设计的,然后很多地方也是用到红黑树,这里单独对红黑树数据结构进行简单的介绍。 目录 红黑树概念 红黑树的性质 自平衡规则 代码   红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可

    2024年02月05日
    浏览(56)
  • 【五一创作】ChatGPT API调用方式详解

    ChatGPT是一个基于GPT-3.5架构的大型语言模型,它可以进行自然语言生成、对话等任务。如果你想要在你的应用程序中集成ChatGPT,你可以使用ChatGPT API进行调用。本文将详细介绍ChatGPT API的调用方式。 在使用ChatGPT API之前,你需要先注册一个账户并获取API密钥。你可以通过访问

    2024年02月02日
    浏览(52)
  • 【五一创作】|【C++】AVL树的实现

    二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查 找元素相当于在顺序表中搜索元素,效率低下, 所以在此基础上提出解决办法: 当向二叉搜索树中插入新节结点时,如果能保证每个节点的左右子树高度之差的绝对值不超过1即可

    2024年02月04日
    浏览(42)
  • 【五一创作】MysqlFirst项目过程中遇到的困难

    解决办法:实体类字段属性不要使用基本数据类型(比如int ,long等),要使用Long,Integer等包装类 修改后就没报此错误了。 解决方法:使用input中的type为hidden 写到点击菜系跳转servlet这里 如何做批处理 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2024年02月02日
    浏览(35)
  • 【五一创作】Python项目怎么部署到spring

    首先,需要确保Python项目已经编写完成并且可运行。然后,可以使用以下步骤将Python项目部署到Spring中: 1. 安装Jython:Jython是一个Java平台上的Python解释器。在Spring中使用Jython可以使Python代码能够与Java代码无缝集成。可以从Jython官方网站下载并安装Jython。 2. 将Python代码转换为

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包