QtLua

描述
QtLua 库旨在使用 Lua 脚本语言使 Qt4/Qt5 应用程序可编写脚本。它是 QtScript 模块的替代品。

QtLua 不会为 Qt 生成或使用生成的绑定代码。相反,它提供了有用的 C++ 包装器类,使 C++ 和 lua 对象都可以从 lua 和 C++ 访问。它利用 Qt 元对象系统将 QObject 成员公开给 lua 脚本。

QtLua 不是为了在纯 Lua 中开发应用程序而设计的,而是使用 Lua 作为脚本语言来扩展 Qt C++ 应用程序。
特征
基本功能:

基于 Lua 堆栈的 C API 未公开,仅从 C++ 代码中操作 QtLua::State 和 QtLua::Value 等 C++ 对象。

由于 C++ 运算符重载,可以从 C++ 访问与 Lua 中几乎相同的简单语法。

通过从 QtLua::UserData 类继承,可以将 C++ 对象作为 userdata 值公开给 Lua。所有 Lua 元操作都可以通过覆盖虚函数来重新定义,包括对 Lua 中的 userdata 对象的迭代。

QtLua::Ref 智能指针类支持对基于 QtLua::UserData 的对象的引用跟踪,并且可以使这些 C++ 对象可进行垃圾回收。

QtLua::Iterator 包装器类允许使用通常的 C++ 迭代器来遍历 Lua 表之类的值。Lua 迭代器还可用于从 Lua 脚本遍历基于 QtLua::UserData 的 C++ 对象。可以使用可用的容器代理类之一直接从 Lua 访问 Qt 模板容器。

QtLua::Function 类可以被子类化,以轻松定义可从 Lua 调用的 C++ 函数对象。QtLua:😛 lugin 类允许编写可能包含 QtLua::Function 对象的 Qt 插件。

支持 Lua 协程,并可用于从 Qt 应用程序中的 Lua 脚本控制并行作业。

QObject 相关功能:

Qt QObject 包装允许从 Lua 创建和操作 QObject 对象。

QObject 属性、枚举、插槽和子对象可以从 Lua 访问。Qt Signals 可以直接连接到 Lua 函数。

qt Lua 库可用,其中包含用于创建 QObject 和管理来自 Lua 的信号/插槽连接的函数。

基于 QObject 的用户类可以在 QtLua 元对象列表中注册。这允许实例化用户类并直接从 Lua 脚本和 .ui 文件访问枚举值。

用户定义的 Qt 类型可以与用户定义的转换函数一起注册。这允许 QtLua 在调用 Qt 插槽或访问 QObject 属性时在 Qt 用户类型和 Lua 值之间执行透明转换。

Qt Widgets 和用户界面功能:

qtLua_uic工具可用于将 Qt .ui 用户界面文件编译为 Lua 脚本。一些 Qt 函数也被包装起来,以便能够直接从 Lua 加载 .ui 文件。

Qt QtLua::Console 小部件是一个控制台小部件,具有历史记录和 Lua 表完成功能。qtLua 工具基于此小部件,并提供基于 Lua 的 shell 用于实验。

qt Lua 库包装了一些重要的用户界面功能,这些功能无法通过 Qt 元对象系统直接获得。

Qt Model/view 相关功能:

QtLua::UserItemModel 类支持开发分层 C++ 数据结构,可从 Lua 脚本和 Qt 视图小部件中编辑。

QtLua::TableTreeModel 和 QtLua::TableGridModel 类可用于向 Qt 视图公开 Lua 表。

QtLua::LuaModel 类允许在纯 Lua 中实现 Qt 模型。

QtLua::ItemViewDialog 类为模型数据显示和编辑提供了一个通用对话框。它可以与各种视图一起使用,并具有可自定义的编辑按钮。

qt Lua 库包含一些函数,允许从 Lua 实例化 MVC 相关模型和对话框。

QtLua 2.0 已通过 Lua 版本 5.0、5.1 和 5.2 以及 Qt 版本 4.8 和 5.0 的测试。

参考:https://www.nongnu.org/libqtlua/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IO流(五):字节流-输入流(Inpustream)、输出流(OutputStream)--使用场景、弊端、注意事项、代码演示。

目录 1、什么是字节流? 2、字节输入流--FileInputStream 2.1 int read()方式代码演示以及注释 2.1.1 读取一个字节 2.1.2 将整个文件挨个字节读取并打印演示 2.2 int read(byte[] buffer)方式代码演示以及注释 2.2 .1 一次读取3字节演示 2.2.2 一次性读取全…

直流保护电路设计及保护器件参数说明和选型

在工控产品设计中时常会涉及到电源保护的电路设计的问题,在深圳瑞隆源电子给出的参考电路来切入主题,对气体放电管、压敏电阻和TVS这三类保护器件的参数及选型进行详细说明,以达到深刻理解的目的。 图1 直流保护电路 举例说明,若…

FastGPT部署通义千问Qwen和智谱glm模型|OneAPI配置免费的第三方API

继这篇博客之后 从零开始FastGPT本地部署|Windows 有同学问,不想在多个平台申请API-Key,不好管理且要付费,有木有白嫖方案呀? 答:有啊。用硅基流动。 注册方法看这篇 【1024送福利】硅基流动送2000万token啦&#xff0…

机器学习day2-特征工程

四.特征工程 1.概念 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 将任意数据(文本或图像等)转换为数字特征,对特征进行相关的处理 步骤:1.特征提取;2.无量纲化(预处理&#xf…

sql数据库-排序查询-DQL

目录 语法 排序方式 举例 将表按年龄从小到大排序 将表按年龄从大到小排序 ​编辑 多重排序 将表按年龄升序,年龄相同按入职时间降序 语法 select * from 表名 order by 字段名1 排序方式1,字段2 排序方式2; 排序方式 升序:ASC&…

响应“一机两用”政策 落实政务外网安全

在数字化时代,政务办公外网安全的重要性日益凸显,特别是在“一机两用”的背景下,即同一台终端既要处理政务内网的数据,又要访问互联网,这对网络安全提出了更高的要求。深信达SPN安全上网方案,即反向沙箱技术…

测试实项中的偶必现难测bug--互斥逻辑异常

问题: 今天线上出了一个很奇怪的问题,看现象和接口是因为数据问题导致app模块奔溃 初步排查数据恢复后还是出现了数据重复的问题,查看后台实际只有一条数据,但是显示在app却出现了两条一模一样的置顶数据 排查: 1、顺着这个逻辑,我们准备在预发复现这个场景,先是cop…

Burpsuite的安装使用说明——【渗透工具介绍与使用】

# 前记 **工欲善其事必先利其器,本系列先介绍一些常见的安全工具的安装与使用** 该文章介绍的是Burpsuite的安装使用说明 > 🍀 作者简介 > 小菜鸡罢了,研究过漏洞、扫过端口、写过脚本,迷恋着CTF,脑袋里充满了各…

如何在 WordPress 中轻松强制所有用户退出登录

作为一名长期管理 WordPress 网站的站长,我深知维护网站安全性的重要性。尤其是在面对会员网站或付费内容平台时,确保所有用户的登录状态是最新的,是维持网站正常运营的关键之一。今天,我就分享一下如何通过简单的步骤&#xff0c…

SNN学习(2):深入了解SNN及LIF神经元的原理和运行过程

目录 一、STDP机制 1、STDP 的基本原理 权重调整的“时间差依赖性” 2、STDP 的数学模型 二、SNN的应用场景 三、从人工神经网络ANN到脉冲神经网络SNN 1、脉冲 2、稀疏性(Sparsity) 3、事件驱动处理(静态抑制) 四、脉冲…

运动汇 专业的比赛管理平台数据获取

在获取到运动汇的网站链接后,界面如图所示: 右键检查,我们会发现没有任何数据,只有当我们点开这些"第一单元"、"第二单元"等,数据才会加载出来; 由于我们只需要分析这一个网页并获取其中的数据&a…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中,BootLoader 的设计是非常关键的部分,它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

rust高级特征

文章目录 不安全的rust解引用裸指针裸指针与引用和智能指针的区别裸指针使用解引用运算符 *,这需要一个 unsafe 块调用不安全函数或方法在不安全的代码之上构建一个安全的抽象层 使用 extern 函数调用外部代码rust调用C语言函数rust接口被C语言程序调用 访问或修改可…

45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

数据结构 ——— 层序遍历链式二叉树

目录 链式二叉树示意图​编辑 何为层序遍历 手搓一个链式二叉树 实现层序遍历链式二叉树 链式二叉树示意图 何为层序遍历 和前中后序遍历不同,前中后序遍历链式二叉树需要利用递归才能遍历 而层序遍历是非递归的形式,如上图:层序遍历的…

Vue3 -- 基于Vue3+TS+Vite项目【项目搭建及初始化】

兼容性注意: Vite 需要 Node.js 版本 18 或 20。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。【摘抄自vite官网】 这里我用的node版本是 v18.20.2 创建项目&#xf…

Linux(CentOS 7) yum一键安装mysql8

1、通过yum安装 (1)下载mysql 在Linux找个地方输入以下命令 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm (2)安装mysql yum 仓库配置文件 [rootVM-8-15-centos ~]# sudo rpm -Uvh mysql80-c…

第5章-总体设计 5.2 需求转化为规格

5.2 需求转化为规格 1.框式产品(1)业务规格,这需要满足客户期望、有市场竞争力、颗粒度最合理。(2)整框规格,包括电源、功耗、散热、可靠性的规格,要保证整款满足环境应用要求。(3&a…

Android setTheme设置透明主题无效

【问题现象】 1、首先&#xff0c;你在AndroidManifest.xml中声明一个activity&#xff0c;不给application或者activity设置android:theme, 例如这样&#xff1a; <applicationandroid:allowBackup"true"android:icon"mipmap/ic_launcher"android:lab…

软考教材重点内容 信息安全工程师 第 3 章 密码学基本理论

&#xff08;本章相对老版本极大的简化&#xff0c;所有与算法相关的计算全部删除&#xff0c;因此考试需要了解各个常 用算法的基本参数以及考试中可能存在的古典密码算法的计算&#xff0c;典型的例子是 2021 和 2022 年分别考了 DES 算法中的 S 盒计算&#xff0c;RSA 中的已…