Прежде всего было бы легче помочь, если бы вы могли опубликовать Минимальный, Полный и Проверяемый пример . Не воспроизводимые вопросы, как правило, недооцениваются или блокируются. Во-вторых, помещать многострочный скрипт Scilab в строку callback
- плохая практика. Определить функцию:
function changeText()
A = evstr("gcbo.userdata(1).String");
area = calculate1(A);
gcbo.userdata(2).String = string(area);
endfunction
и измените этот фрагмент кода на:
button1 = uicontrol(p, "string", "1", "units", "normalized",...
"position", [0 0 1/3 1/6], ...
'style', 'pushbutton',
"BackgroundColor", [0, 0.8, 0.8], ...
"relief", "solid", ...
"userdata", [A], ...
"callback", "changeText", "callback_type", 2);
где "callback_type", 2
убедитесь, что функция Scilab запускается при каждом нажатии кнопки.
Теперь представьте, что у вас есть текст:
text1 = uicontrol(p, "style", "text", "string", "....")
Вам нужно сделать глобальную переменную text1
, а затем изменить значение text1.String
внутри функции обратного вызова. Это должно выглядеть так:
global text1;
function changeText()
global text1;
A = evstr("gcbo.userdata(1).String");
area = calculate1(A);
gcbo.userdata(2).String = string(area);
text1.String = "some data here";
endfunction
button1 = uicontrol(p, "string", "1", "units", "normalized",...
"position", [0 0 1/3 1/6], ...
'style', 'pushbutton',
"BackgroundColor", [0, 0.8, 0.8], ...
"relief", "solid", ...
"userdata", [A], ...
"callback", "changeText", "callback_type", 2);
text1 = uicontrol(p, "style", "text", "string", "....")
Если вы отправите MCVE, тогда я могу помочь лучше. Успех.