今天开始学习aardio中的快捷键与热键设置。
简单热键设置
我发现aardio里设置热键其实很简单,用key.hotkey
模块就能轻松实现。试了个小例子,当按下Ctrl+Alt+A
组合键时,程序会弹出消息框,代码如下:
import win.ui;
import key.hotkey
/*DSG{{*/
var winform = win.form(text="热键示例";right=759;bottom=469)
winform.add(
edit={cls="edit";text="试试按下 Ctrl+Alt+A!";left=18;top=30;right=739;bottom=149;edge=1;multiline=1;z=1}
)
/*}}*/
hotkey = key.hotkey();
hotkey.loadTable({
["Ctrl+Alt+A"] = function(){
win.msgbox("你按下了 Ctrl+Alt+A!")
};
})
winform.show()
win.loopMessage()
截图一这里先创建了hotkey对象,然后用loadTable
方法设定热键组合和对应的操作函数,运行后按下组合键真的弹出了消息框,超有成就感!
多个热键设置
原来还能在一个程序里设置多个热键,每个热键对应不同功能,试了下设置Ctrl+Alt+A
和Ctrl+Alt+B
两个热键,代码是这样的:
import win.ui;
import key.hotkey;
/*DSG{{*/
var winform = win.form(text="多个热键示例";right=759;bottom=469)
winform.add(
edit={cls="edit";text="试试按下 Ctrl+Alt+P 或 Ctrl+Alt+B";left=17;top=26;right=731;bottom=160;edge=1;multiline=1;z=1}
)
/*}}*/
hotkey = key.hotkey();
hotkey.loadTable({
["Ctrl+Alt+P"] = function(){
win.msgbox("你按下了 Ctrl+Alt+P!")
};
})
hotkey.loadTable({
["Ctrl+Alt+B"] = function(){
win.msgbox("你按下了 Ctrl+Alt+B!")
};
})
winform.show()
win.loopMessage()
截图二就像给程序设置了不同的“密码组合”,按下不同热键会弹出不同消息,感觉程序一下子变得灵活起来了。
热键与程序功能结合
把热键和程序功能结合起来才是真正的实用场景,试了用热键触发打开记事本的操作,代码如下:
import win.ui;
import key.hotkey
import process;
/*DSG{{*/
var winform = win.form(text="热键与功能结合示例";right=759;bottom=469)
winform.add(
edit={cls="edit";text="试试按下 Ctrl+Alt+N";left=26;top=18;right=708;bottom=141;edge=1;multiline=1;z=1}
)
/*}}*/
var hotkey = key.hotkey();
hotkey.loadTable({
["Ctrl+Alt+N"] = function(){
process.execute("notepad.exe")
};
})
winform.show()
win.loopMessage()
截图三按下Ctrl+Alt+N
真的瞬间打开了记事本,这种“一键启动”的感觉太爽了,以后可以用热键触发各种程序操作。
挑战
尝试完成了设置文件保存和打开热键的习题,写了个完整程序:
import win.ui;
import process;
import key.hotkey;
/*DSG{{*/
var winform = win.form(text="热键综合示例";right=759;bottom=469)
winform.add(
edit={cls="edit";text="试试先按下 Ctrl+Alt+S 再按下 Ctrl+Alt+C";left=37;top=36;right=736;bottom=142;edge=1;multiline=1;z=1}
)
/*}}*/
var hotkey = key.hotkey();
hotkey.loadTable({
["Ctrl+Alt+S"] = function(){
var filePath = io.file("文本文件.txt","w+");
filePath.write('这是保存的文本内容。');
filePath.close()
win.msgbox("文件保存成功")
};
})
hotkey.loadTable({
["Ctrl+Alt+C"] = function(){
import console
var filePath = "./文本文件.txt";
process.execute("notepad.exe",filePath)
};
})
winform.show()
win.loopMessage()
截图四Ctrl+Alt+S
能保存文本文件,Ctrl+Alt+C
能打开文件,通过io.file
实现文件写入,用process.execute
调用记事本打开文件,终于实现了热键控制文件操作,成就感满满!
学习总结
今天学会了用key.hotkey
模块设置热键,从简单单个热键到多个热键,再到结合程序功能,最后实现文件操作热键,一步步掌握了热键设置的核心用法。感觉热键设置让程序操作变得更便捷,就像给程序赋予了“快捷键魔法”,以后要多尝试把热键和更多功能结合起来,提升程序使用效率。