這是我執行Benoit的答案。
我在指南中創建了一個名爲'TheGui'的gui。它保存在文件TheGui.fig和TheGui.m中。 TheGui有一個標籤爲'TheGuiButton'的按鈕。
在MATLAB命令行中,我使用TheGui命令啓動gui,並打開它。
在MATLAB命令窗口中使用此循環,我得到'TheGui'的句柄。我無法讓F = findobj('Name','TheGui')工作。
for hx = findall(0, 'type','figure'),if isequal('TheGui',get(hx,'name')),hGui=hx,end,end
有了TheGui的句柄,我得到了一個按鈕(唯一的孩子)的句柄。
hButton = findobj(hGui,'style','pushbutton')
我可以看到,這就是我想要的東西用
v = get(hButton)
檢查其屬性和我可以改變按鈕的屬性這樣
set(hButton,'enable','off')
我把這一切一起在一個MATLAB腳本文件中看到它的工作
for hx = findall(0, 'type','figure')
if isequal('TheGui',get(hx,'name'))
hGui=hx
end
end
hButton = findobj(hGui,'style','pushbutton')
for i = 1:10
set(hButton,'enable','off')
pause(1)
set(hButton,'enable','on')
pause(1)
end
如果h已經在使用,可能在程序運行時可能會更改,如果使用GLOBAL_HANDLES這樣的長名稱和唯一名稱,可能會更好。無論如何,全局變量的長名稱是很好的練習,因爲它們可能會導致很多麻煩。 –
您可能需要在致電set(h,'enable','on')後致電[guidata](http://uk.mathworks.com/help/matlab/ref/guidata.html) –
我該怎麼辦它? –