通过 Lua 创建交互式 GTK 界面
Create interactive GTK interface through Lua
我正在构建一个严重依赖插件的应用程序。这些在 Lua 中进行编码,以便更轻松、更快地开发。
我现在想为插件的配置添加 GTK 用户界面。现在的问题是我需要一种通过外部代码(基本上是信号和回调)与界面交互的方法。而且我不确定如何仅使用外部 Lua 脚本来实现该行为。
我的方法是否正确,或者我应该在我的 UI 框架中实施本机解决方案?
如果您使用的是 linux 或 BSD,Lua 是 GTK 的完美选择。只需看看 lua-lgi project。安装后,您可以在几秒钟内开始构建 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 的库,例如cairo
, goffice
, gnome-db
等等。
如果您在 Windows,那您就倒霉了。我构建了一个 working installer but it is more a proof-of-concept than a real project. The road to that has been really tough, expecially because gobject-introspection(被 lgi
广泛使用)还不是跨平台友好的。
我没有其他方面的经验OS。
我正在构建一个严重依赖插件的应用程序。这些在 Lua 中进行编码,以便更轻松、更快地开发。
我现在想为插件的配置添加 GTK 用户界面。现在的问题是我需要一种通过外部代码(基本上是信号和回调)与界面交互的方法。而且我不确定如何仅使用外部 Lua 脚本来实现该行为。
我的方法是否正确,或者我应该在我的 UI 框架中实施本机解决方案?
如果您使用的是 linux 或 BSD,Lua 是 GTK 的完美选择。只需看看 lua-lgi project。安装后,您可以在几秒钟内开始构建 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 的库,例如cairo
, goffice
, gnome-db
等等。
如果您在 Windows,那您就倒霉了。我构建了一个 working installer but it is more a proof-of-concept than a real project. The road to that has been really tough, expecially because gobject-introspection(被 lgi
广泛使用)还不是跨平台友好的。
我没有其他方面的经验OS。