【问题标题】:Pushbutton Callback types in MATLAB GUIDEMATLAB GUIDE 中的按钮回调类型
【发布时间】:2013-06-05 09:36:21
【问题描述】:

在使用 Matlab 的 GUIDE 为按钮指定回调类型时,有几个选项,其中两个描述如下:(引用自 Matlab 文档的文字)

  1. ButtonDownFcn:当用户在指针位于组件或图形的五个像素上或五个像素内时按下鼠标按钮时执行

  2. 回调:控制操作。例如,当用户单击按钮或选择菜单项时执行。

描述似乎暗示他们做同样的事情。这两种回调类型有什么区别?

【问题讨论】:

    标签: matlab callback matlab-guide


    【解决方案1】:

    ButtonDownFcn 回调应该在您在 uicontrol 上按下鼠标按钮时触发,无论您是否释放鼠标按钮,以及您的操作是否最终激活 uicontrol。

    Callback 回调应该在 uicontrol 被激活时触发。激活对于不同的 uiicontos 意味着不同的东西——对于按钮来说,它意味着按钮被按下,对于复选框来说,它意味着复选框被选中或取消选中,对于编辑框来说,它意味着文本内容被修改。

    假设您有一个带有Callback 回调的按钮,但没有ButtonDownFcn 回调。如果将鼠标悬停在按钮上,单击并按住鼠标,从按钮上移开,然后释放,则不应触发 Callback 回调,因为未激活按钮。但是如果它有一个ButtonDownFcn 回调,那么当你第一次点击鼠标时它就会被触发,即使按钮最终没有被激活。

    如果两者都有,并且您完全单击并释放按钮以激活它,ButtonDownFcn 应该首先触发,因为它在激活之前的向下点击时触发。

    【讨论】:

    • 感谢您的启发性回答!
    【解决方案2】:

    回调回调应该在 uicontrol 被激活时触发。激活对于不同的 uiicontos 意味着不同的东西 - 对于按钮来说意味着按钮被按下,对于复选框来说意味着复选框被选中或取消选中,对于编辑框来说意味着文本内容被修改

    当您在 uicontrol 上按下鼠标按钮时,ButtonDownFcn 回调应该触发,无论您是否释放鼠标按钮,以及您的操作是否最终激活 uicontrol。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多