2012-04-12 369 views
1

我們知道如何編程matlab做的東西是單擊按鈕時,它是這樣的:Matlab的:按鈕回調「按住」事件

button= uicontrol('Style','pushbutton','String','click me',... 
    'Position',[260 80 60 20],... 
    'Callback','disp ('' The button is clicked'')'); 

所以一段代碼或函數放在「後回調'將被調用,只要該按鈕被按下並釋放(因此只有在釋放按鈕時纔會調用處理程序)

但是,我希望能夠在按鈕被按下但尚未釋放時激活一些代碼。我怎樣才能做到這一點?

回答

-1

您必須對「ButtonDownFcn」屬性使用回調函數。從here:」

ButtonDownFcn

字符串或函數句柄(GUIDE設置該屬性)

後的按鍵回調例程回調例程,當你按下鼠標按鈕可以執行 。而指針位於或接近於一個 uicontrol。具體如下:

如果uicontrol的Enable屬性設置爲on,ButtonDownFcn 當您單擊uicontrol周圍的5像素邊框中的一個 或單擊控件本身上的右鍵 按鈕時,執行回調。

如果uicontrol的啓用屬性設置爲無效或已關閉,則 ButtonDownFcn當您單擊在5個像素的邊框或對控制權本身或鼠標左鍵 執行。

這是用於實現動作來交互式地修改 控制對象屬性,例如大小和位置,當它們是 點擊(使用selectmoveresize,例如)是有用的。

定義該例程作爲字符串,是一個有效的MATLAB表達或 代碼文件的名稱。該表達式在MATLAB 工作區中執行。

要在GUIDE中添加ButtonDownFcn回調,請從佈局編輯器視圖菜單中的 選擇查看回調,然後選擇ButtonDownFcn。 GUIDE將 設置爲適當的字符串,並在下次保存GUI時將回調添加到 代碼文件中。或者,您可以將此屬性的 設置爲字符串%automatic。下次保存 GUI時,GUIDE會將此屬性設置爲適當的字符串,並將 回調添加到代碼文件中。

使用Callback屬性指定當您激活啓用的uicontrol時(例如,單擊按鈕 按鈕), 執行的回調例程。

+0

它不適用於啓用「打開」,但適用於「非活動」。它會在點擊時觸發回調,但不會保持。 – oro777 2017-03-30 09:03:27