cmud 发表于 2014-12-23 14:10:07

怎么让MushClient弹出对话框?

比如弹出yes/no选择对话框,
比如附带一个TextBox的输入对话框。
查了一下MushClient自带的函数,好像没有实现这两个功能的。
但是在别人的插件里面,还真有这些对话框啊。

北大侠客行MUD,中国最好的MUD

cmud 发表于 2014-12-23 14:13:15

看了一下插件的内容,应该是用utils实现的。
但是用其他语言,怎么调用这个utils呢?

littleknife 发表于 2014-12-23 15:49:59

utils函数是 Lua utilities 函数的意思,是lua自带的内置函数。Lua functions

utils.activatenotepad (Actvitates the specified notepad window)
utils.appendtonotepad (Appends text to the specified notepad window)
utils.base64decode (Decode a string which was base-64 encoded)
utils.base64encode (Encode a string with base-64 encoding)
utils.callbackslist (Returns a table of plugin callback function names)

utils.choose (Display a combo box with choices in it)
utils.compress (Compress a string)
utils.decompress (Decompress a string)
utils.directorypicker (Invokes the Windows standard "directory picker" dialog box)
utils.editbox (Display a large message box and get free-format reply)
utils.edit_distance (Returns the Levenshtein Edit Distance between two words)

utils.filepicker (Invokes the Windows standard "file picker" dialog box)
utils.filterpicker (Display a dialog box which filters its contents as you type)
utils.fontpicker (Invokes the Windows standard "font picker" dialog box)
utils.fromhex (Convert a string from hex)
utils.functionlist (Returns a table of MUSHclient world function names)

utils.getfontfamilies (Returns all fonts available to Windows)
utils.glyph_available (Returns the glyph index of a glyph (character) in a font)
utils.hash (Hash a string, returning the hex codes)
utils.info (Information about directories, locale, etc.)
utils.infotypes (Returns a table of all GetInfo type selectors)

utils.inputbox (Display a message box and get free-format reply)
utils.listbox (Display a dialog box with choices in it in a single selection list box)
utils.md5 (Hash a string using the 128-bit MD5 algorithm)
utils.metaphone (Returns metaphones (sound-alike codes) for the supplied word)
utils.msgbox (Display a message box and get a response)

utils.multilistbox (Display a dialog box with choices in it in a multiple selection list box)
utils.readdir (Read a disk directory into a table)
utils.reload_global_prefs (Forces global preferences file to be reloaded)
utils.sendtofront (Bring a window to the front)
utils.sha256 (Hash a string using a 256-bit hash)

utils.shellexecute (Executes a Windows "shell" command)
utils.spellcheckdialog (Spell-checker dialog)
utils.split (Split a delimited string into a table)
utils.timer (Returns the high-resolution timer output)
utils.tohex (Convert a string into hex)
utils.umsgbox (Display a message box and get a response (Unicode))

utils.utf8convert (Encodes a string into a UTF-8 string)
utils.utf8decode (Encodes a series of Unicode codes into a UTF-8 string)
utils.utf8encode (Encodes a series of Unicode codes into a UTF-8 string)
utils.utf8sub (Returns a substring of a UTF-8 string)
utils.utf8valid (Checks if a UTF-8 string is valid)

utils.xmlread (Parses an XML string into a nested table)

cmud 发表于 2014-12-23 19:39:30

关键是怎么用其他语言来访问这些函数呢?

moonlily 发表于 2014-12-24 07:31:34

回复 5# cmud stop_job=function()
        local result = utils.msgbox ("是否强制停止当前工作?", "停止?...", "yesnocancel", "?", 3 )
        if result == "yes" then
                me.job = "none"
                stopall()
                print("机器停止工作")
        end
end
比如这样, 会跳出一个对话框, 3个按钮, "是, 否, 取消", 只有点了"是", 才会执行下面的终止机器代码

cmud 发表于 2014-12-24 10:10:01

回复 6# moonlily

多谢以上各位,utils确实可以实现lua的弹出对话框功能。
但是尚未找到其他语言调用utils的方法。

我这边使用python测试了一下,使用python自带的GUI(TK)库,可以实现
对话框功能,更推荐使用easygui库,
页: [1]
查看完整版本: 怎么让MushClient弹出对话框?