📜  lua 点击按钮 (1)

📅  最后修改于: 2023-12-03 14:44:04.984000             🧑  作者: Mango

Lua 点击按钮

在 Lua 中,使用 GUI 框架可以实现点击按钮的功能。常见的 GUI 框架包括:

  • IUP
  • wxLua
  • tk.lua
IUP

IUP 是一个轻量级的 GUI 框架,使用简单,可以快速实现 GUI 界面的设计。以下是一个实现点击按钮的例子:

require( "iuplua" )

function button_cb()
  iup.Message("Button Callback", "Hello, World!")
end

btn = iup.button{title="Click Me", action=button_cb}
dlg = iup.dialog{btn; title="Lua IUP Button Example", size="QUARTERxQUARTER"}

dlg:show()
iup.MainLoop()

其中,iup.button 创建一个按钮对象,title 属性设置按钮的标题,action 属性设置按钮被按下时触发的回调函数。

wxLua

wxLua 是一个集成了 wxWidgets 的 Lua 扩展库,具有跨平台、强大的功能特性。以下是一个实现点击按钮的例子:

require( "wx" )

function button_cb(event)
  wx.wxMessageBox("Hello, World!", "Button Callback", wx.wxOK + wx.wxICON_INFORMATION, frame)
end

app = wx.wxApp()
frame = wx.wxFrame(nil, wx.wxID_ANY, "wxLua Button Example")
button = wx.wxButton(frame, wx.wxID_ANY, "Click Me")
button:Connect(wx.wxEVT_COMMAND_BUTTON_CLICKED, button_cb)

frame:CreateStatusBar()
frame:Show(true)
app:MainLoop()

其中,wx.wxButton 创建一个按钮对象,第一参数为该按钮所属的父窗口,第二个参数为按钮的 ID,第三个参数为按钮的标题。通过调用 Connect 函数为按钮对象添加 wxEVT_COMMAND_BUTTON_CLICKED 事件的回调函数。

tk.lua

tk.lua 是一个基于 Tcl/Tk 的 Lua 扩展库,支持跨平台。以下是一个实现点击按钮的例子:

tk = require( "tk" )
main = tk.mainloop

function button_cb()
  tk.messageBox{title="Button Callback", message="Hello, World!"}
end

button = tk.button{ text="Click Me", command=button_cb }
tk.pack{ button }

main()

其中,tk.button 创建一个按钮对象,text 属性设置按钮的标题,command 属性设置按钮被按下时触发的回调函数。通过 tk.pack 函数将按钮添加到窗口中。

总结

以上是三种常见的 Lua GUI 框架实现按钮点击的示例,开发者可以根据需求选择适合的框架。