C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用

这篇具有很好参考价值的文章主要介绍了C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建一个QT快速应用

本教程使用内置的QML类型,介绍了Qt Quick的基本概念。有关可以选择的用户界面选项的更多信息,请参阅用户界面。

本教程描述了如何使用Qt Creator实现Qt Quick状态和过渡。我们创建一个应用程序,在单击页面上的三个矩形时,显示一个移动的Qt标志。

关于QML:

QML(Qt Meta-Object Language)类型是一种用于构建用户界面的声明性语言。它是Qt Quick框架的核心组成部分,用于描述应用程序的外观和行为。
QML类型是可重用的元素,可以通过组合和嵌套来创建复杂的用户界面。每个QML类型都有属性、信号和方法,可以在其他QML类型中使用和操作。
Qt提供了一些内置的QML类型,如Rectangle(矩形)、Text(文本)、Image(图片)等,这些类型可以直接在QML文件中使用。此外,还可以创建自定义的QML类型,以满足特定的需求。
使用QML类型,可以通过简单而直观的方式构建现代、响应式和动态的用户界面。它使得开发者能够更轻松地实现界面的交互和动画效果。

C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记

有关在设计模式下开发Qt Quick应用程序的更多信息,请参阅开发Qt Quick应用程序。

有关使用Qt Quick控件的示例,请参阅Qt Quick控件示例。

创建项目

  1. 选择“文件”>“新建文件或项目”>“应用程序”>“Qt Quick应用程序-滑动”>“选择”。
  2. 在“名称”字段中输入应用程序的名称。
  3. 在“创建位置”字段中输入项目文件的路径,然后选择“下一步”(或在macOS上选择“继续”)。
  4. 在“构建系统”字段中,选择要用于构建和运行项目的构建系统:qmake、CMake或Qbs。
  5. 在“Qt Quick控件样式”字段中,选择要使用的预定义UI样式之一,然后选择“下一步”。
  6. 选择要为其构建应用程序的平台的工具集。要构建适用于移动设备的应用程序,请选择Android ARM和iPhone OS的工具集,然后单击“下一步”。

注意:如果已在“工具”>“选项”>“工具集”(Windows和Linux)或“Qt
Creator”>“首选项”>“工具集”(macOS)中指定了工具集,则会列出工具集。

  1. 选择“下一步”。
  2. 查看项目设置,然后单击“完成”(或在macOS上单击“完成”)。

Qt Creator生成两个UI文件,Page1Form.ui.qml和Page2Form.ui.qml,以及一个QML文件,main.qml。可以在表单编辑器中修改Page1Form.ui.qml以创建应用程序的主视图,并在文本编辑器中修改main.qml以添加应用程序逻辑。对于本示例,可以忽略Page2Form.ui.qml。

创建主视图

应用程序的主视图在视图的左上角显示一个Qt标志和两个空矩形。

要在应用程序中使用qt-logo.png图像,必须将其从Qt示例目录复制到项目目录(与QML文件相同的子目录)。该图像将显示在资源中。也可以使用任何其他图像或QML类型。

  1. 在Projects视图中,双击打开Page1Form.ui.qml文件以在设计模式下编辑。
    C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记

  2. 在导航器中,选择Label并按Delete键删除它。

  3. 在导航器中选择Page,并在Id字段中输入page。

  4. 在Library > Resources中,选择qt-logo.png并将其拖放到导航器中的页面上。
    C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    a. 在Id字段中输入icon。
    b. 在Position字段中,将X设置为10,Y设置为20。

  5. 在Projects视图中右键单击资源文件qml.qrc,并选择Add Existing File将qt-logo.png添加到用于部署的资源文件中。

  6. 将一个Rectangle拖放到导航器中的页面上,并编辑其属性。
    C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    a. 在Id字段中输入topLeftRect。
    b. 在Size字段中,将W设置为55,H设置为41,使矩形大小与图像大小相匹配。
    c. 在Color字段中,点击(透明)按钮使矩形透明。
    d. 在Border color字段中,将边框颜色设置为#808080。
    e. 点击Layout,然后点击(Top)和(Left)锚定按钮将矩形锚定到页面的左上角。
    f. 在Margin字段中,为顶部锚点选择20,为左侧锚点选择10。
    C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记

  7. 从库中将Mouse Area类型拖放到导航器中的topLeftRect上。

  8. 点击Layout,然后点击C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    (Fill to Parent)按钮将鼠标区域锚定到矩形上。

  9. 在导航器中,通过按Ctrl+C复制topLeftRect,并按Ctrl+V将其粘贴到页面上两次。Qt Creator会将新实例命名为topLeftRect1和topLeftRect2。

  10. 选择topLeftRect1并编辑其属性:
    a. 在Id字段中输入middleRightRect。
    b. 在Layout中,选择C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    (垂直居中锚定按钮),然后选择C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    (右侧)锚定按钮将矩形锚定到其父级的中右边距。
    c. 在Margin字段中,为右侧锚点选择10,为垂直居中锚点选择0。

  11. 选择topLeftRect2并编辑其属性:
    a. 在Id字段中输入bottomLeftRect。
    b. 在Layout中,选择C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    (底部)和C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    (左侧)锚定按钮将矩形锚定到其父级的左下边距。
    c. 在Margin字段中,为底部锚点选择20,为左侧锚点选择10。

  12. 在导航器中,选择每个类型的C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    (导出)按钮以将所有类型导出为属性。这使可以在main.qml文件中使用这些属性。

  13. 按Ctrl+S保存更改。

要检查的代码,可以在文本编辑器中查看Page1Form.ui.qml文件,并将其与Page1Form.ui.qml示例文件进行比较。

新项目向导向Page1.qml文件添加样板代码以创建菜单项和推送按钮。通过删除过时的代码来修改样板代码。已从UI表单中删除了推送按钮,因此还需要从Page1.qml中删除相应的代码(否则无法构建应用程序)。

现在UI已经准备好,可以切换到在文本编辑器中编辑main.qml文件,以添加动画到应用程序,如下一节所述。
C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记

添加应用逻辑

编辑 main.qml 文件,添加两个额外状态 State1 和 State2 的指针。你无法使用表单编辑器为 Window QML 类型添加状态。请使用文本编辑器将状态添加到 StateGroup QML 类型中,并通过使用状态组的 id 引用它们。\

  1. 将窗口大小和背景颜色指定为 ApplicationWindow 类型的属性:

    ApplicationWindow {
        visible: true
        width: 640
        height: 480
        title: qsTr("Tabs")
    
  2. 为 Page1 类型指定一个 id,以便能够使用在 Page1Form.ui.qml 中导出的属性:

    SwipeView {
        id: swipeView
        anchors.fill: parent
        currentIndex: tabBar.currentIndex
    
        Page1Form {
            id: page
    
  3. 在 mouseArea 中添加一个指向点击表达式的指针:

    	mouseArea {
    	onClicked: stateGroup.state = ' '
    	}
    
  4. 该表达式将状态设置为基本状态,并将图像返回到初始位置。
    在 mouseArea1 中添加一个指向点击表达式的指针,将状态设置为 State1:

    	mouseArea1 {
    	onClicked: stateGroup.state = 'State1'
    	}
    
  5. 在 mouseArea2 中添加一个指向点击表达式的指针,将状态设置为 State2:

        mouseArea2 {
        onClicked: stateGroup.state = 'State2'
        }
    }
    
  6. 将 Qt 标志的位置绑定到矩形,以确保在不同大小的屏幕上缩放视图时,标志显示在矩形内部。设置 x 和 y 属性的表达式,如下面的代码片段所示:

      StateGroup {
          id: stateGroup
          states: [
              State {
                  name: "State1"
    
                  PropertyChanges {
                      target: page.icon
                      x: page.middleRightRect.x
                      y: page.middleRightRect.y
                  }
              },
              State {
                  name: "State2"
    
                  PropertyChanges {
                      target: page.icon
                      x: page.bottomLeftRect.x
                      y: page.bottomLeftRect.y
                  }
              }
          ]
    
  7. 按 Ctrl+R 运行应用程序。
    点击矩形以将 Qt 标志从一个矩形移动到另一个矩形。

为视图添加动画

在状态组内添加过渡以定义当Qt标志在状态之间移动时属性如何变化。这些过渡将动画应用于Qt标志。例如,当它移动到middleRightRect时,Qt标志会反弹回来,并平稳地进入bottomLeftRect。

  1. 在文本编辑器中,添加以下代码以指定当移动到State1时,Qt标志的x和y坐标在线性时间内变化1秒钟:

      transitions: [
          Transition {
              from: "*"; to: "State1"
              NumberAnimation {
                  easing.type: Easing.OutBounce
                  properties: "x,y";
                  duration: 1000
              }
          },
    
  2. 可以使用Qt Quick工具栏中的动画功能将缓动曲线类型从线性更改为OutBounce:
    a. 在文本编辑器中单击NumberAnimation以显示C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    图标,然后单击该图标以打开工具栏:
    C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用,QT,C/C++,c++,qt,笔记
    b. 在Easing字段中,选择Bounce。
    c. 在Subtype字段中,选择Out。

  3. 添加以下代码以指定当移动到State2时,Qt标志的x和y坐标在2秒钟内变化,并且使用InOutQuad缓动函数:

      ...
              Transition {
                  from: "*"; to: "State2"
                  NumberAnimation {
                          properties: "x,y";
                          easing.type: Easing.InOutQuad;
                          duration: 2000
                  }
              },
    
  4. 添加以下代码以指定对于任何其他状态变化,Qt标志的x和y坐标在线性时间内变化200毫秒:

      ...
              Transition {
                       NumberAnimation {
                           properties: "x,y";
                           duration: 200
                       }
              }
          ]
    

按Ctrl+R运行应用程序。
单击矩形以查看动画过渡效果。

素材文件

Files:

  • transitions/Page1Form.ui.qml
  • transitions/Page2Form.ui.qml
  • transitions/main.qml
  • transitions/qml.qrc
  • transitions/transitions.pro

Images:

  • transitions/qt-logo.png

参考文章

QT快速入门:创建您的第一个QML应用文章来源地址https://www.toymoban.com/news/detail-646590.html

到了这里,关于C++QT教程3——手册4.11.1自带教程(笔记)——创建一个QT快速应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 11k+star 开源笔记应用真香 centos部署教程

    life edited this page on Jul 21, 2017 · 10 revisions  Pages 26 Home How to develop leanote 如何开发leanote How to install leanote on Ubuntu? How to Upgrade Leanote Install Mongodb leanote api leanote api en leanote binary installation on Mac and Linux (En) Installation Overview: 1. Download the binary file of Leanote 2. Install the database -- Mong

    2024年02月02日
    浏览(38)
  • TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序

    概述: TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。本篇文章主要介绍用DK11为FMX创建一个应用程序,现在就跟着小编来了解一下吧~ # 31款JAVA开发必备控件和工具 # 界面/文档管理/报表/IDE等4000款

    2024年02月07日
    浏览(43)
  • 一个简单的Web程序(详解创建一个Flask项目后自带的一个简单的Web程序)

    程序代码截图如下:  在创建 Flask 程序时,通常需要先创建一个应用实例进行应用初始化。 上述代码中,使用 Flask 类创建了一个应用实例 app。 __name__ 参数用于获取当前代码文件的文件名,作为应用实例的名称。 if __name__ == \\\'__main__\\\': app.run(debug=True) 用于启动服务器并运行应

    2024年01月20日
    浏览(50)
  • Open3D-GUI系列教程(一)创建一个Open3D应用窗口

    本人菜狗一枚,第一次写文章,python懂的也不多,肯定有很多表述存在问题,如有错误请大佬们不吝赐教。 整个open3d的gui我是照着源码里的示例和官方文档摸出来的,因为确实很少有关于这个的教程,官方也没给。所以我顺便整理分享一下。 Open3D官网 官方文档 open3d版本:

    2023年04月13日
    浏览(68)
  • 创建一个简单的Qt工程

    1.打开QtCreator进行如下选择。(开软去官网下载即可,注册邮箱可以断网跳过) 第一步: 选择Application     第二步:这里文件名称和路径都不要有中文 第三步:选择编译模式 点击下一步 第四步:选择 Widget点击下一步   第五步:运行工程,判断是否创建成功 课堂小记: 1. 析

    2024年02月03日
    浏览(32)
  • 如何使用Qt创建一个新窗口?

    如何使用Qt创建一个新窗口? 在Qt中,我们可以使用QML语言轻松创建图形界面。如果需要创建一个新的窗口,我们可以使用Qt.createComponent来创建一个新组件并将其添加到主窗口中。下面是一个简单的例子。 在这个例子中,我们创建了一个主窗口,并在其中添加了一个按钮。当

    2024年02月11日
    浏览(59)
  • QT--3.创建一个简单的图形界面

    qt的移植性非常强。 1.创建一个工程 2.项目选择Application,然后选择Qt Widgets Application,最后选择choose。 注意:创建项目的名称和路径是不能有中文的!!!! 点击下一步后,就可以自动生成工程 .pro文件 点击forms,双击点击ui文件 在组件属性设计里面选择长度宽度800x600 用到的

    2024年02月03日
    浏览(53)
  • qt---应用窗口创建

     

    2024年02月12日
    浏览(51)
  • qt creater11 翻译国际化教程教程:

    先出效果图。 闲聊几句:qt这个翻译很方便,能直接导出项目里所有文字。 具体步骤如下: 在Qt中,我们可以使用QTranslator类来实现多语言切换。以下是一般步骤: 1. 在你的源代码中,所有需要翻译的字符串都需要使用 `tr()` 函数包裹,例如 `tr(\\\"你好\\\")`。 2. 在项目文件 (.pr

    2024年02月10日
    浏览(37)
  • windows11下Qt6.5开发环境安装及QT for Android环境搭建(含虚拟机的创建)

    最近想升级Qt6.5及顺便配置Android开发环境。于是在网上找了各种教程,结果在配置Android开发环境都以失败告终。最终花了很长时间才搞掂。接下来分享比较好的安装方法以及安装注意事项。 建议用中科大或清华的镜像下载在线安装器,官网的很慢。链接如下: 下载在线安装

    2024年02月13日
    浏览(75)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包