GUI 屏幕转换在 qml 中如何工作

2024-01-16

我是一名 C++ 开发人员,现在正在研究在 QtQuick 中使用 QML 进行 GUI 开发。

在 GUI 创建过程中,用户只能看到一个屏幕。 并根据用户交互来切换屏幕。 但背后究竟发生了什么?

有很多信息仅涉及如何设计单个屏幕,但有关如何管理其状态转换的资源却很少。

启动应用程序时是否加载了所有屏幕和组件,并将层顺序更改为显示一次屏幕,

OR

用户操作后,新屏幕被构建、加载,旧屏幕被销毁(一次只有一个屏幕在内存中)

这种处理类型的术语是什么?

指出我在哪里可以找到此类信息将会非常有帮助。

如果您无法理解我的问题,请告诉我。我再重写一遍!!


有一个方便的现成解决方案可用:堆栈视图 http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html。它为滑动/淡入和淡出的页面提供内置过渡。

StackView {
    id: stack
    initialItem: Page {
        Button {
            text: "Push"
            anchors.centerIn: parent
            onClicked: stack.push(Qt.resolvedUrl("OtherPage.qml"))
        }
    }
}

StackView 允许您push http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#push-method项目、URL 和组件。当推送后两者中的任何一个时,StackView 会在适当的时候自动创建和销毁实例。例如,如果您推送多个 URL 或组件,它只会实例化最顶层的 URL 或组件,该 URL 或组件将成为堆栈中的当前项。一旦您pop http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#pop-method当项目从堆栈中移出时,一旦它成为堆栈中当前最顶层的项目,它就会根据需要创建该项目的实例。 StackView 还允许您replace http://doc.qt.io/qt-5/qml-qtquick-controls2-stackview.html#replace-method堆栈中的一项或多项。当从堆栈中弹出或替换动态创建的项目时,它会在相应的转换完成后自动销毁实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GUI 屏幕转换在 qml 中如何工作 的相关文章

  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • QToolButton:更改菜单位置

    使用菜单时QToolButton菜单显示在按钮的正下方 有没有办法在按钮的左侧 右侧显示菜单 我知道这个问题不久前已得到回答 但我想为此问题添加新答案 因为接受的答案不再有效 实际上 更改 QToolButton 上的菜单位置非常容易 您需
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 如何使QTableView类的restoreState()和saveState()正常工作?

    首先 我想说 我的问题已经在这里讨论过 并且这里是 https stackoverflow com questions 1163030 qt qtableview and horizontalheader restorestate 但答案并
  • QTimer 一点也不准确?

    运行在 Windows7 64 位机器上 具有非常强大的 CPU 8 核 16 线程 我使用 QTimer 以 50Hz 触发函数调用 但我最终得到了 30Hz 函数调用本身肯定需要不到 10 毫秒才能完成 整个过程发生在一个单独的线程中
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • Qml 模块未找到 CPP 类注册与新的 QML_ELEMENT r

    我尝试使用 Qt5 15 0 和新宏 QML ELEMENT 在 QML 中注册我的自定义 CPP 类 但找不到该模块 Qt Creater 帮助文件描述了 QML ELEMENT 的步骤 我也检查了 Qt 手册 但没有幸福的结局 http
  • 拦截jTable选择改变事件

    I found 这个论坛主题 http www javakb com Uwe Forum aspx java programmer 2407 Row non selectable in a JTable这建议重写 ListSelection
  • 如何使用meta-toolchain-qt5构建Qt(带有QtWebEngine支持)?

    我正在尝试使用构建 Qtmeta toolchain qt5 但是当我通过这样做时poky glibc x86 64 meta toolchain qt5 cortexa7hf vfp vfpv4 neon toolchain 2 0 1
  • 从 Qt4 中的文本文件中逐字读取

    我想在 Qt4 中逐字读取一个文本文件 说实话我对它很陌生 我想在另一个文件中每行一个字写入 我可以在 C 中做到这一点 没有任何问题 但是当我尝试在 Qt4 中使用 ifstream 和 ofstream 时 我遇到了错误 这是我的 Qt
  • 有什么所谓的 GUI 标准吗?

    GUI 是大多数软件产品的重要领域之一 我想知道是否有一个叫做 GUI 标准的东西 它定义了 GUI 设计的最佳实践 但很深入 例如 有任何定义包含文本框的最佳大小或 Windows 窗体的宽度和高度之间的比率 只是为了给用户提供最大的便利
  • QML 连接:不推荐使用连接中隐式定义的 onFoo 属性

    升级到 Qt 5 15 时收到以下错误消息 QML Connections Implicitly defined onFoo properties in Connections are deprecated Use this syntax
  • 如何在不同的分辨率/屏幕上提供相同的应用程序

    Scenario 您需要在不同的屏幕上展示相同的应用程序 假设标准的 15 英寸 17 英寸 便携式 10 英寸和移动 4 英寸 可能在不同的分辨率下工作 Question 您是否尝试采用一种根据可用空间重新排列的流动布局 或者您是否滚动
  • 如何将 zlib 添加到现有的 qt 安装中

    如何将 zlib 添加到 Qt 的现有安装中 我对此很陌生 所以请给我详细的描述 提前感谢您的帮助 zlib 包含在 Qt 核心库中 如果你想在 Qt 程序中使用 zlib 函数 你只需要包含 src 3rdparty zlib 中的 zl
  • 如何为 Windows 构建静态 Qt 库并将其与 Qt Creator 一起使用

    我已经下载了以下 Qt 源 http download qt nokia com qt source qt everywhere opensource src 4 7 3 zip http download qt nokia com qt
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 黑莓 - 带动画的加载/等待屏幕

    有没有办法显示 加载 屏幕带动画在黑莓手机上 选项 PME动画内容 多线程 图像集 定时器 计数器 标准轮辋 API 其他方式 有这个吗 Thanks 费明 安东尼 1 谢谢大家 你们给了我部分答案 我的最终解决方案 1 创建或生成 免费
  • 为什么 QGraphicsWidget 的选择边框在 QGraphicsScene 中不可见?

    我已经通过一个小部件添加到图形场景 QGraphicSscene QGraphicsProxyWidget 问题是 当我选择该项目时 它被选中 但选择边框不可见 这是代码 QDial dial new QDial Widget dial g

随机推荐

  • 更新推送通知的实时应用程序 ID

    我在 App Store 中有一个应用程序 它有一个通配符应用程序 ID 我想向其添加推送通知 但不能 因为我们有通配符应用程序 ID 这是我得到的错误 只有显式应用程序 ID 才能用于访问 Apple 推送通知服务 请使用具有特定捆绑包标
  • 用新行替换字符

    Powershell ver 4 Windows 7 我想更换 在文本文件中添加新行 我尝试了下面的脚本 Get Content C Test test txt Replace n Set Content C Test testv2 txt
  • isset() 在表单上无法正常工作

    我有一个用户提交的注册表单 使用 isset POST 发送数据以查看是否有任何内容放入表单输入框中 如果没有 则将其发送到 else 然后将其发送到一个函数 该函数将用户返回到注册表以完成一些缺少的表单 由于某种原因它无法正常工作 这是我
  • Mongodb-在现有集合上添加唯一索引

    我正在尝试学习 Mongodb 中的索引 我创建了一个数据库和一个集合 如下所示 use mydb db createCollection myFirstCollection one name Helios two name Kepler
  • JavaFX 在场景图控件上循环

    如何循环控制场景 我尝试使用 getChildrenUnmodifying 但它仅返回第一级子级 public void rec Node node f node if node instanceof Parent Iterator
  • pytorch如何设置.requires_grad False

    我想冻结我的一些模型 按照官方文档 with torch no grad linear nn Linear 1 1 linear eval print linear weight requires grad 但它打印True代替False
  • 如果发出 SIGINT 或 SIGSTP,是否会调用析构函数?

    我有一个带有用户定义析构函数的类 如果类最初被实例化 然后在程序运行时发出 SIGINT 在 unix 中使用 CTRL C 析构函数会被调用吗 SIGSTP unix 中的 CTRL Z 的行为是什么 不会 默认情况下 大多数信号都会导致
  • 分离 __iter__ 和 __next__ 方法

    在Python 3中 通过定义一个类同时成为可迭代器和迭代器是标准过程 iter and next 方法 但我很难理解这一点 以创建一个仅生成偶数的迭代器为例 class EvenNumbers def init self max self
  • .STACK 未在 MASM 中分配正确的大小

    基于微软MASM文档 https learn microsoft com en us cpp assembler masm dot stack view vs 2019 STACK指令的用法是 与 MODEL 一起使用时 定义堆栈段 段名称
  • jQuery 显示带有 More 和 Less 链接的第一个 X 元素

    我试图找到一个 jQuery 解决方案 在左侧导航过滤器中显示每个菜单上的前 3 个项目 并带有 显示更多 和 显示更少 链接 使用户能够扩展列表 我已经寻找了一个解决方案 但大多数展开 折叠脚本完全隐藏图层 而其他脚本则显示展开 显示更多
  • Android 应用程序仅在发布 APK 时崩溃

    我有一个好奇的问题 我构建了一个在调试模式下运行良好的应用程序 直接调试我的手机并在手机上安装了调试 APK 但如果我使用发布构建 APK 该应用程序会在某一时刻崩溃 我发现应用程序在发布 APK 时崩溃 但我不知道为什么以及我能做什么 p
  • Passenger Standalone 在触摸 restart.txt 时不会重新启动

    我构建了一个小部署脚本 其工作方式与 Capistrano 类似 它将 Rails 应用程序检出到带时间戳的目录并设置current当一切顺利时链接到该链接 问题是 在触摸 tmp restart txt 时 什么也没有发生 我想知道这是否
  • 匹配两个列表之间的相似元素

    我是 python 新手 所以如果这是一个愚蠢的问题 我深表歉意 我有两个清单 L1 marvel audi mercedez honda and L2 marvel comics bmw mercedez benz audi 我想提取其中
  • 在 Windows 上安装 pyspark

    我可以做一个pip install pyspark在我的窗户上 当我尝试运行下面的示例脚本时 它告诉我我的SPARK HOME未设置 我还需要设置 SPARK HOME 吗 我该怎么做 我在网上提到的博客从 Spark 网站手动提取 Spa
  • 如何禁用 kubernetes 中 2 个不同命名空间中的 pod 之间的交叉通信

    我有 2 个命名空间和 1 个 Pod 每个命名空间中运行 1 个服务 Example Namespace 1 default Pod pod1 Service pod1service Namespace 2 test Pod pod1 S
  • 将时间戳与续集查询中的日期进行比较

    I have createdAt将值存储为的列 2018 11 07 15 03 16 532 00 我想写这样的查询select from table name where createdAt input date 我的input dat
  • 如何在柱形图中隐藏零值

    我正在使用柱形图并将这些值显示在每个条形的顶部 如果值为 0 我不想显示这些值 该怎么做 这是我的代码 var series data dataLabels enabled true color black align right x 3
  • 随机状态代码:连接到 lambda 的 AWS api 网关出现 502 错误

    我使用代理集成通过 api 网关公开了多个 lambda 有时我会收到状态代码 502 的奇怪错误 lambda 云监视日志中没有任何内容 下面我发布了示例请求的 API 网关日志 0cbbd9f5 f1bd 11e7 92c0 4d5d3
  • Android Studio模拟器参数

    Android studio 使用这样的命令行启动模拟器 Users sergey Library Android sdk tools emulator avd Nexus 5 API 22 x86 netspeed full netdel
  • GUI 屏幕转换在 qml 中如何工作

    我是一名 C 开发人员 现在正在研究在 QtQuick 中使用 QML 进行 GUI 开发 在 GUI 创建过程中 用户只能看到一个屏幕 并根据用户交互来切换屏幕 但背后究竟发生了什么 有很多信息仅涉及如何设计单个屏幕 但有关如何管理其状态