V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chenqh
V2EX  ›  问与答

关于 ahk 的问题,ahk 怎么写一个类似 vscode 的 ctrl+shift+p 的一个 dropdownlist 啊,

  •  
  •   chenqh · 2 天前 · 416 次点击

    原谅我伸手

    我实在搞不定这个 ahk

    9 条回复    2025-01-04 19:34:54 +08:00
    summerwar
        1
    summerwar  
       1 天前
    ```
    #Requires AutoHotkey v2.0


    ; 热键触发命令面板
    ^+p:: ; Ctrl+Shift+P
    {
    myGui := Gui()
    myGui.Add("Text", , "请选择一个命令:")
    myddl := myGui.Add("DropDownList", "vChooseCommand", ["Command 1", "Command 2", "Command 3", "Exit"])
    myddl.OnEvent("Change", DDLChanged)
    myGui.Show("xCenter yCenter AutoSize")
    }


    ; 创建下拉列表,使用 ComboBox 控件,功能更强大
    DDLChanged(obj, *) {
    MsgBox("选择了 " . obj.value)
    ;显示 obj 的所有内容
    }

    ```

    简单写了下,其中 obj.value 的值是选中的序号,剩下的自由发挥吧

    chenqh
        2
    chenqh  
    OP
       1 天前
    @summerwar 你这个无法 Enter 键选中
    chenqh
        3
    chenqh  
    OP
       1 天前
    我先试一试.
    summerwar
        4
    summerwar  
       1 天前
    @chenqh #2 你先看下你的问题,你的问题里哪有说让 Enter 键选中了?你明明问如何写 dropdownlist
    summerwar
        5
    summerwar  
       1 天前
    我看了下,vscode 的 ctrl+shift+P 调出来的可不是 dropdownlist ,明明是个 input ,然后根据 input 的内容,筛选命令,然后 enter 确定
    chenqh
        6
    chenqh  
    OP
       1 天前
    @summerwar 我的,有办法做成跟 vscode 的 createQuickPick,这种类似的功能吗?
    summerwar
        7
    summerwar  
       1 天前
    @chenqh #6 调出来的面板有两个,一个是 input ,一个是 listbox ,input 用来输入内容,listbox 是你的所有命令的一个列表,当 input 为空时,显示全部命令,当 input 输入内容时,监听 input 的 change 方法,在里面根据 input 的内容过滤命令,将过滤后的显示在 listbox 里,当键盘往下时按 Enter 或者鼠标点选时,将当前的 listbox 的选中内容放置到 input 中,然后运行这个命令,执行相对应的命令内容就好了。

    大致的思路就是上面的
    summerwar
        8
    summerwar  
       1 天前


    简单做了个演示,应该是这样的。具体的样式你要调整好,比如没有大的背景,然后位置和高度也要调整等。最后监控 gui 的 submit 提交的结果,运行对应的方法函数就可以了。

    上面的 input 在 autohotkey 中是 Edit 控件。当输入内容时,根据输入的内容过滤全部命令,只显示包含输入文字的命令
    chenqh
        9
    chenqh  
    OP
       1 天前
    @summerwar 你是真的厉害.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:14 · PVG 21:14 · LAX 05:14 · JFK 08:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.