通过Lua实现交互式GTK界面

我正在构建一个严重依赖于插件的应用程序。这些插件使用Lua编码以便于更快的开发。

现在我想为插件配置添加GTK用户界面。问题在于我需要一种方法通过外部代码与界面进行交互(基本上是通过信号和回调)。我不确定如何仅使用外部Lua脚本实现该行为。

我的方法是否正确,还是我应该在我的框架中实现本地解决方案?

点赞
用户186347
用户186347

如果你使用的是 Linux 或 BSD 操作系统,Lua 是使用 GTK 的一个很好的选择。只需查看 lua-lgi 项目,一旦安装好,你就可以在数秒内开始构建 UI:

lgi = require'lgi'
Gtk = lgi.require'Gtk'
dialog = Gtk.MessageDialog { text = 'This is a text message.', buttons = 'CLOSE' }
dialog:show_all()
Gtk.main()

lgi 最大的特点是它适用于所有 GObject 的基础库,例如 cairogofficegnome-db 等等。

如果你使用的是 Windows 系统,很遗憾,你可能会碰到些问题。我已经构建了一个 可用的安装包,但它更像是一个概念验证而不是一个真正的项目。这是一条很长的路,特别是因为现在广泛使用的 gobject-introspection 尚未进行跨平台适配。

我没有其他操作系统的使用经验。

2019-03-16 06:05:05