Следующий пример скрывает и показывает кнопки.
Я создал образец, не используя guide
.
Вы можете скопировать и вставить этот код в файл Matlab m
.
Создание графического интерфейса без guide
инструмент, лучший вариант Stack Overflow site, потому что нет необходимости прикреплять файл fig
.
Вам лучше использовать инструмент guide
, потому что создание графического интерфейса без него сложно.
Следующий пример кода скрыть (и показать) кнопочный:
%TestNoGuideHideButton.m
%Create GUI with two buttons, without using GUIDE.
function TestNoGuideHideButton()
%Create figure.
h.fig = figure('position', [800 400 260 80]);
%Add button, with callback function Button1
h.buttonOne = uicontrol('style', 'pushbutton',...
'position',[10 20 100 40], ...
'string' , 'Button1', ...
'callback', {@Button1});
%Add button, with callback function hideButton
h.buttonTwo = uicontrol('style', 'pushbutton', ...
'position',[150 20 100 40], ...
'string' , 'Hide Button1', ...
'callback', {@hideButton});
function Button1(hObject, eventdata)
%Modify color of Button1 to random color.
set(h.buttonOne, 'BackgroundColor', rand(1, 3));
end
function hideButton(hObject, eventdata)
is_visible = isequal(get(h.buttonOne, 'Visible'), 'on');
if (is_visible)
%Hide buttonOne if Visible.
set(h.buttonOne, 'Visible', 'off');
set(h.buttonTwo, 'string', 'Show Button1'); %Replace string.
else
%Restore buttonOne if hidden.
set(h.buttonOne, 'Visible', 'on');
set(h.buttonTwo, 'string', 'Hide Button1'); %Replace string.
end
end
end
Для задачи, которую вы описали выше, вы, очевидно, не может добавить кнопку для отображения и скрытия другой кнопки.
Вы можете восстановить кнопку при завершении игры.
Вы также можете добавить функцию обратного вызова для фонового рисунка (найдите WindowButtonDownFcn
в guide
).
Нажатие в любом месте фигуры вызывает срабатывание, если вы можете восстановить скрытую кнопку.

Я не могу понять, почему это было бы непонятно. Еще стоит подумать, как сделать кнопку видимой снова. Это нужно планировать. – patrik
Я думаю, что кнопка здесь неправильный подход, потому что, если вы сделаете ее невидимой, путь Matlab больше не может быть нажат. Вы можете манипулировать лежащей в основе Java, но я бы не рекомендовал беспокоиться. Скорее вы должны определить, на каком месте щелкнули фоновое изображение, и координировать обратный вызов таким образом. – thewaywewalk