2013-06-05 3 views
2

Хотя specifyfing типа обратного вызова для кнопки с помощью GUIDE Matlab, есть несколько вариантов, два из которых описаны ниже: (цитируют слова из документации от Matlab)типов Кнопочного Обратного звонка в GUIDE MATLAB

  1. ButtonDownFcn: Выполняет когда пользователь нажимает кнопку мыши, когда указатель включен или находится в пределах пяти пикселей от компонента или цифры

  2. Обратный звонок: действие управления. Выполняется, например, когда пользователь нажимает кнопку или выбирает пункт меню.

Описание, похоже, предполагает, что они делают то же самое. В чем разница между этими двумя типами обратного вызова?

ответ

4

Обратный вызов ButtonDownFcn должен срабатывать, когда вы нажимаете кнопку мыши по uicontrol, независимо от того, отпускаете ли вы кнопку мыши или не активируете ли действие действие uicontrol.

Обратный вызов Callback должен срабатывать при активации uicontrol. Активированный означает разные вещи для разных uicontols - для кнопки это означает, что кнопка нажата, для флажка это означает, что флажок выбран или отменен, для поля редактирования это означает, что текстовое содержимое изменено.

Предположим, у вас есть кнопка с обратным вызовом Callback, но не ButtonDownFcn обратный вызов. Если вы наведите указатель мыши на кнопку, нажмите и удерживайте мышь, отодвиньте ее от кнопки, а затем отпустите, обратный вызов Callback не должен запускаться, так как кнопка не была активирована. Но если вместо этого был обратный вызов ButtonDownFcn, это было бы срабатывать, как только вы нажмете на мышь в первый раз, даже если кнопка не была в конечном счете активирована.

Если у вас есть и то и другое, и вы полностью нажали и отпустили кнопку, чтобы активировать его, сначала должен выстрелить ButtonDownFcn, поскольку он срабатывает при нажатии вниз, которое находится перед активацией.

+0

Спасибо за освещающий ответ! –

0

Обратный вызов обратного вызова должен срабатывать при активации uicontrol. Активированный означает разные вещи для разных uicontols - для кнопки это означает, что кнопка нажата, для флажка это означает, что флажок выбран или отменен, для поля редактирования это означает, что текстовое содержимое изменено.

Обратный вызов ButtonDownFcn должен срабатывать, когда вы нажимаете кнопку мыши над uicontrol, независимо от того, отпускаете ли вы кнопку мыши и не активируете ли действие действие uicontrol или нет.

Смежные вопросы