В Scilab можно создавать GUI без установки дополнительных репозиториев — только встроенными средствами. Основа — функции figure() и uicontrol().
figure).uicontrol).callback).figure() — создание окнаf = figure();
Основные свойства окна:
'position' — [x, y, width, height] (в пикселях);'figure_name' — заголовок окна.Пример:
f = figure(); set(f, 'position', [100, 100, 400, 300]); set(f, 'figure_name', 'Мой интерфейс');
uicontrol() — добавление элементовСинтаксис:
h = uicontrol(parent, 'style', 'тип', 'property', value, ...);
Параметры:
parent — дескриптор окна (f из figure);'style' — тип элемента;'property' — настраиваемое свойство (например, 'string', 'position').Основные типы элементов ('style'):
'pushbutton' — кнопка;'edit' — поле ввода текста;'text' — текстовая метка (подпись); 'checkbox' — флажок;'slider' — ползунок;'listbox' — список.btn = uicontrol(f, ...
'style', 'pushbutton', ...
'string', 'Нажать', ...
'position', [50, 200, 100, 30], ...
'callback', 'disp("Кнопка нажата!")'); input = uicontrol(f, ...
'style', 'edit', ...
'string', 'Введите текст', ...
'position', [50, 150, 200, 30]); label = uicontrol(f, ...
'style', 'text', ...
'string', 'Ваш ввод:', ...
'position', [50, 120, 100, 20]); chk = uicontrol(f, ...
'style', 'checkbox', ...
'string', 'Включить опцию', ...
'position', [50, 100, 150, 20], ...
'value', 0); // 0 — снят, 1 — установлен slider = uicontrol(f, ...
'style', 'slider', ...
'min', 0, ...
'max', 100, ...
'value', 50, ...
'position', [50, 50, 200, 20]); callback)Свойство 'callback' задаёт код/функцию, выполняемую при взаимодействии с элементом.
btn = uicontrol(f, ...
'style', 'pushbutton', ...
'string', 'Показать ввод', ...
'position', [50, 200, 120, 30], ...
'callback', 'show_input()');
function show_input()
text = get(input, 'string'); // Получаем текст из поля ввода
mprintf('Вы ввели: %s\n', text);
endfunction slider = uicontrol(f, ...
'style', 'slider', ...
'min', 0, 'max', 100, 'value', 50, ...
'position', [50, 50, 200, 20], ...
'callback', 'update_label()');
function update_label()
val = get(slider, 'value');
set(label, 'string', sprintf('Значение: %d', val));
endfunction Самостоятельно: Продумать элементы управления (не менее 2-х типов), для собственной задачи. Подготовить черновой код и их описание.
Срок сдачи: 09 декабря 2025 г.
В Scilab можно создавать GUI без установки дополнительных репозиториев — только встроенными средствами. Основа — функции figure() и uicontrol().
// Создаём окно
f = figure();
set(f, 'position', [100, 100, 300, 200]);
set(f, 'figure_name', 'Калькулятор');
// Поля ввода
input1 = uicontrol(f, 'style', 'edit', 'string', '0', 'position', [50, 150, 80, 25]);
input2 = uicontrol(f, 'style', 'edit', 'string', '0', 'position', [150, 150, 80, 25]);
// Метки
uicontrol(f, 'style', 'text', 'string', 'Число 1:', 'position', [50, 180, 60, 20]);
uicontrol(f, 'style', 'text', 'string', 'Число 2:', 'position', [150, 180, 60, 20]);
// Кнопка вычисления
btn = uicontrol(f, ...
'style', 'pushbutton', ...
'string', 'Сложить', ...
'position', [100, 100, 100, 30], ...
'callback', 'calculate()');
// Поле вывода результата
result = uicontrol(f, ...
'style', 'text', ...
'string', 'Результат: ', ...
'position', [50, 50, 200, 30]);
// Функция обработки
function calculate()
a = strtod(get(input1, 'string'));
b = strtod(get(input2, 'string'));
res = a + b;
set(result, 'string', sprintf('Результат: %g', res));
endfunction 'position' — [x, y, width, height] (пиксели);'string' — текст на элементе;'value' — текущее значение (для флажков, ползунков);'min', 'max' — границы для ползунков;'callback' — код/функция при событии;'foregroundcolor' — цвет текста (вектор RGB, например [0,0,1] — синий);'backgroundcolor' — цвет фона.get(handle, 'property').set(handle, 'property', value).str2num().disp() или mprintf().