【QT Quick】基础语法:导入外部JS文件及调试

在 QML 中,可以使用 JavaScript 来实现业务逻辑的灵活性和简化开发。接下来我们会学习如何导入 JavaScript 文件,并在 QML 中使用它,同时也会介绍如何调试这些 JavaScript 代码。

导入 JavaScript 文件

在 QML 中导入 JavaScript 文件的方式如下:

  • 首先,新建一个 JavaScript 文件,例如命名为 myJs.js,在文件中定义一些函数:
// myJs.js
function myFunc1() {console.log("Called myFunc1");
}function myFunc2() {console.log("Called myFunc2");
}function getTitle() {return "Dynamic Title from JS";
}
  • 在 QML 文件中使用 import 导入该文件,并为其指定一个别名:
import "myJs.js" as MyJS
  • 在 QML 中可以直接调用 JavaScript 中的函数,例如:
import QtQuick 2.15
import QtQuick.Controls 2.15
import "myJs.js" as MyJSApplicationWindow {visible: truewidth: 640height: 480title: MyJS.getTitle() // 动态获取标题Button {text: "Call JS Functions"anchors.centerIn: parentonClicked: {MyJS.myFunc1();MyJS.myFunc2();}}
}

这样,点击按钮时会调用 JavaScript 文件中的 myFunc1()myFunc2(),并在控制台中打印出相应的信息。

调试 JavaScript 代码

在 QML 中调试 JavaScript 可以通过设置断点、单步执行等方式进行。以下是具体的方法:

  • 设置断点:在 Qt Creator 中,你可以在 QML 或 JavaScript 文件中的某一行代码上点击行号,设置一个断点。断点用于暂停程序运行,以便查看当前的状态和变量值。

  • 开始调试

    • 你可以点击左下角的“调试”按钮,或者按 F5 开始调试程序。
    • 当代码运行到断点时,程序会暂停,方便你查看当前的执行情况。
  • 单步调试

    • F10:单步执行(不进入函数),用于逐行执行代码。
    • F11:单步进入函数,适用于想要深入函数内部查看的情况。
  • 查看变量值

    • 在调试模式下,当程序暂停在断点处时,可以在右侧的调试窗口中看到所有可用的变量及其当前的值。
    • 你还可以在下方的调试控制台 (QML Debug Console) 中输入变量名或表达式来查看其值。例如:
    console.log(MyJS.getTitle()); // 查看 getTitle 函数的返回值
    
  • 使用调试控制台

    • 调试控制台不仅可以显示输出信息,还可以直接输入 JavaScript 表达式来查看或修改变量的值,例如:
    myVar += 10; // 修改变量的值
    

调试技巧

  • 断点与断点操作

    • 可以在 QML 文件和 JavaScript 文件的任何可执行行设置断点,方便查看代码逻辑的执行顺序。
    • 调试时,可以用 F5 运行到下一个断点,也可以用 F10F11 来逐步跟踪代码。
  • 查看函数调用层次

    • 在调试过程中,右侧的“调用栈”区域可以查看当前代码的调用层次,这对于排查复杂调用关系中的错误非常有用。
  • 使用调试控制台

    • 调试控制台允许输入和执行 JavaScript 表达式,非常适合在暂停状态下进一步验证逻辑和变量的值。
  • 灵活使用工具

    • 在调试过程中,通过 Qt Creator 的各个视图(例如调用栈、变量视图、断点视图等)可以获得代码运行的详细信息,帮助定位和解决问题。

通过这些调试手段,你可以更容易地找出和修复 QML 和 JavaScript 中的错误,提升代码的质量和可靠性。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Conda管理python环境的指南

1. 准备 .yml 文件 确保你有一个定义了 Conda 环境的 .yml 文件。这个文件通常包括环境的依赖和配置设置。文件内容可能如下所示: name: myenv channels:- defaults dependencies:- python3.8- numpy- pandas- scipy- pip- pip:- torch- torchvision- torchaudio2…

OpenCV马赛克

#马赛克 import cv2 import numpy as np import matplotlib.pyplot as pltimg cv2.imread(coins.jpg,1) imgInfo img.shape height imgInfo[0] width imgInfo[1]for m in range(200,400): #m,n表示打马赛克区域for n in range(200,400):# pixel ->10*10if m%10 0 and …

Hive数仓操作(十七)

一、Hive的存储 一、Hive 四种存储格式 在 Hive 中,支持四种主要的数据存储格式,每种格式有其特点和适用场景,不过一般只会使用Text 和 ORC : 1. Text 说明:Hive 的默认存储格式。存储方式:行存储。优点…

华硕天选笔记本外接音箱没有声音

系列文章目录 文章目录 系列文章目录一.前言二.解决方法第一种方法第二种方法 一.前言 华硕天选笔记本外接音箱没有声音,在插上外接音箱时,系统会自动弹出下图窗口 二.解决方法 第一种方法 在我的电脑上选择 Headphone Speaker Out Headset 这三个选项…

Custom C++ and CUDA Extensions - PyTorch

0. Abstract 经历了一波 pybind11 和 CUDA 编程 的学习, 接下来看一看 PyTorch 官方给的 C/CUDA 扩展的教程. 发现极其简单, 就是直接用 setuptools 导出 PyTorch C 版代码的 Python 接口就可以了. 所以, 本博客包含以下内容: LibTorch 初步;C Extension 例子; 1. LibTorch …

国庆刷题(day4)

C语言: C:

gdb 调试 linux 应用程序的技巧介绍

使用 gdb 来调试 Linux 应用程序时,可以显著提高开发和调试的效率。gdb(GNU 调试器)是一款功能强大的调试工具,适用于调试各类 C、C 程序。它允许我们在运行程序时检查其状态,设置断点,跟踪变量值的变化&am…

电脑手机下载小米xiaomi redmi刷机包太慢 解决办法

文章目录 修改前下载速度修改后下载速度修改方法(修改host) 修改前下载速度 一开始笔者以为是迅雷没开会员的问题,在淘宝上买了一个临时会员后下载速度依然最高才100KB/s 修改后下载速度 修改方法(修改host) host文…

Python编码规范与常见问题纠正

Python编码规范与常见问题纠正 Python 是一种以简洁和易读性著称的编程语言,因此,遵循良好的编码规范不仅能使代码易于维护,还能提升代码的可读性和可扩展性。编写规范的 Python 代码也是开发者职业素养的一部分,本文将从 Python…

TryHackMe 第6天 | Web Fundamentals (一)

这一部分我们要简要介绍以下 Web Hacking 的基本内容,预计分三次博客。 在访问 Web 应用时,浏览器提供了若干个工具来帮助我们发现一些潜在问题和有用的信息。 比如可以查看网站源代码。查看源代码可以 右键 网页,然后选择 查看网站源代码&…

【复习】CSS中的选择器

文章目录 东西有点多 以实战为主选择器盒子模型 东西有点多 以实战为主 选择器 CSS选择器(CSS Selectors)是用于在HTML或XML文档中查找和选择元素,以便应用CSS样式的一种方式。 元素选择器(Type Selector) 选择所有…

探索 aMQTT:Python中的AI驱动MQTT库

文章目录 探索 aMQTT:Python中的AI驱动MQTT库背景介绍aMQTT是什么?如何安装aMQTT?简单库函数使用方法场景应用常见问题及解决方案总结 探索 aMQTT:Python中的AI驱动MQTT库 背景介绍 在物联网和微服务架构的浪潮中,MQ…

CSS3练习--电商web

免责声明:本文仅做分享! 目录 小练--小兔鲜儿 目录构建 SEO 三大标签 Favicon 图标 布局网页 版心 快捷导航(shortcut) 头部(header) logo 导航 搜索 购物车 底部(footer&#xff0…

2024年计算机视觉与艺术研讨会(CVA 2024)

目录 基本信息 大会简介 征稿主题 会议议程 参会方式 基本信息 大会官网:www.icadi.net(点击了解参会投稿等信息) 大会时间:2024年11月29-12月1日 大会地点:中国-天津 大会简介 2024年计算机视觉与艺术国际学术…

Redis --- 第三讲 --- 通用命令

一、get和set命令 Redis中最核心的两个命令 get 根据key来取value set 把key和value存储进去 redis是按照键值对的方式存储数据的。必须要先进入到redis客户端。 语法 set key value : key和value都是字符串。 对于上述这里的key value 不需要加上引号&#…

数据库概述(1)

课程主页:Guoliang Li Tsinghua 数据库在计算机系统中的位置 首先,数据库是在设计有大量数据存储需求的软件时必不可少可的基础。 最常见的是:我们通过app或者是浏览器来实现一些特定需求——比如转账、订车票。即引出背后的CS和BS两种网…

重学SpringBoot3-集成Redis(三)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(三) 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码:自定义过期策略 3. 配置…

如何使用ssm实现民族大学创新学分管理系统分析与设计+vue

TOC ssm763民族大学创新学分管理系统分析与设计vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不…

【rCore OS 开源操作系统】Rust 字符串(可变字符串String与字符串切片str)

【rCore OS 开源操作系统】Rust 语法详解: Strings 前言 这次涉及到的题目相对来说比较有深度,涉及到 Rust 新手们容易困惑的点。 这一次在直接开始做题之前,先来学习下字符串相关的知识。 Rust 的字符串 Rust中“字符串”这个概念涉及多种类型&…

【EXCEL数据处理】000017 案例 Match和Index函数。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000016 案例 Match和Index函数。使用的软件&#xff…