【问题标题】:Is 'Ctrl' key pressed while clicking a button?单击按钮时是否按下了“Ctrl”键?
【发布时间】:2012-04-24 01:06:45
【问题描述】:

我需要知道用户在单击按钮时是否按住 ctrl 键。因为它是一个按钮而不是一个图形,所以我不能在图形等上使用“selectionType”。

【问题讨论】:

    标签: matlab user-interface


    【解决方案1】:

    这个怎么样:

    modifiers = get(gcf,'currentModifier');        %(Use an actual figure number if known)
    ctrlIsPressed = ismember('control',modifiers);
    

    图形类有许多有用的Current* 属性,这些属性在处理回调时很有用。这是检索当前鼠标位置、选定图形对象和(如这里)按下的键的方法。其中包括:CurrentAxes、CurrentCharacter、CurrentKey、CurrentModifier、CurrentObject 和 CurrentPosition。

    【讨论】:

    • 似乎 cmd 修饰符在键释放后仍然存在。有什么方法可以查出当前按下了哪些键?
    【解决方案2】:

    按退出键重新初始化 CurrentModifier。到目前为止,我的解决方案是指示我的用户(直接在 GUI 中)按退出键以恢复默认行为。

    总体而言,Matlab 的 CurrentModifier 行为似乎是修饰键“粘住”,直到发生以下情况之一:按下不同的修饰键、选择了不同的窗口或按下了转义键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多