首先,我将向您展示我正在谈论的示例:GUI 示例
我已经研究 Lua 大约一个星期了,我真的很好奇我会如何做到这一点。基本上(现在和学习目的),我只想制作一个带有 2 个按钮的 GUI,1 个用于启动指定的(.exe),一个用于退出 GUI。
这可能吗?我该怎么做呢?任何信息都会很棒!
首先,我将向您展示我正在谈论的示例:GUI 示例
我已经研究 Lua 大约一个星期了,我真的很好奇我会如何做到这一点。基本上(现在和学习目的),我只想制作一个带有 2 个按钮的 GUI,1 个用于启动指定的(.exe),一个用于退出 GUI。
这可能吗?我该怎么做呢?任何信息都会很棒!
我相信你可能想看看: http: //lua-users.org/wiki/GraphicalUserInterfaceToolkits
如果你想要一些众所周知和经过测试的东西,我会去 Qt,如果有一些简单的东西:FLTK。
如果你是一个绝对的初学者,即你没有任何其他编程语言的编程经验,我建议你很好地学习 Lua,而不要试图搞乱 GUI 编程,这本来就更难。当你对 Lua 有很好的理解时,就去寻找 Lua 的 GUI 工具包。我使用wxLua,所以我只能给你一些提示。
由于它不是“原生”Lua 工具包,而是与著名的跨平台 GUI 库(wxWidgets)的“绑定”,因此您必须同时学习 wxLua 文档和 wxWidgets 手册(至少在某种程度上)。
wxLua 二进制发行版附带了使用它所需的一切(您甚至不需要单独的 Lua 解释器,它有自己的)并包含大量示例应用程序。
以下脚本是您想要做的一个简单的近似,但是(我重复一遍)在尝试 GUI 编程之前,您应该真正学习 Lua 的基础知识。
local wx = require 'wx'
local PATH_TO_APPLICATION = [[notepad.exe]] -- Windows assumed for sake of exemplification
local ans = wx.wxMessageBox( "Should the application be started?", "Hi there!",
wx.wxOK + wx.wxCANCEL + wx.wxICON_QUESTION )
if ans == wx.wxOK then
wx.wxExecute( PATH_TO_APPLICATION )
end
要运行前面的脚本,您必须确保 wxLua 已正确安装在您的解释器搜索路径中。否则,您必须使用wxlua.exe
发行版附带的解释器。
还要注意 wxLua 解释器(最新的 wxLua 稳定版本)运行在 Lua 5.1 版本上,所以尽量不要在你的脚本中使用 Lua 5.2 的特性。基本的 Lua 语法和语义几乎相同,但有一些细微的差别,Lua 5.2 有几个附加特性。所以要小心你的学习路径。
IUP 应该是使用 Lua 创建 GUI 的最简单方法。但是,如果您尝试在 Linux 上安装 IUP,您将遇到障碍。您必须希望有人预先安装了它,或者有人已经为您的 Linux 版本预先编写了安装包。如果您希望其他人能够稍后运行您的代码,那么以合理的方式进行设置几乎是不可能的。这确实是 Lua/Iup 团队的一个错误,因为我在 C 编程语言中使用 Iup 没有任何问题,而且它似乎与许多版本的 Linux 广泛兼容。这与通常的情况相反,通常情况下,设置脚本语言非常容易,而设置像 C 这样的低级语言却很困难。
另一个例子是 IUP: http ://www.tecgraf.puc-rio.br/iup/
它支持 Microsoft Windows 和 Unix
你检查过 wxLua吗?这是我所知道的 Lua 的唯一桌面 gui 框架。