Как изменить значки кнопок на панели инструментов фигуры MATLAB?(2014b) - PullRequest
0 голосов
/ 05 декабря 2018

Я пишу приложение в MATLAB и хочу обновить его внешний вид.Можно ли изменить значки кнопок на панели инструментов в коде MATLAB?

Код будет скомпилирован, и я не использую GUIDE;в идеале есть способ получить ручки кнопок и установить каждую иконку индивидуально, хотя я не знаю, как бы я это сделал.

Example of what I mean

Но с более высокимкачественные иконки.

1 Ответ

0 голосов
/ 05 декабря 2018

Да, вы можете изменить значки панели инструментов фигуры или добавить свои собственные.

Я подробно рассказал о том, как изменить значок ниже, а также о других полезных вещах, связанных спанель инструментов, пока вы редактируете свойства.

Подробнее см. комментарии к коду.

Получите объект панели инструментов

% Initialise some figure 
fig = figure( 'Name', 'MyApp', 'NumberTitle', 'off' )
% Get the figure toolbar handle
tbar = findall( fig, 'tag', 'FigureToolBar' );

Выможно сделать findall(tbar), чтобы перечислить названия всех кнопок

Скрытие кнопок

Допустим, вы хотите скрыть кнопку «новая фигура»:

% Get the button from the tbar object
btn = findall( tbar, 'tag', 'Standard.NewFigure' )
% Set to not visible
set( btn, 'Visible', 'off' );

Изменение обратных вызовов

Допустим, вы хотите, чтобы кнопка печати запускала обратный вызов с предварительным просмотром печати вместо прямой печати (вы можете назначить любую пользовательскую функцию обратного вызова любомукнопка):

% Get the button again
btn = findall( tbar, 'tag', 'Standard.PrintFigure' );
% Change the callback (and the tooltip to match)
set( btn, 'ClickedCallback', 'printpreview(gcbf)', ...
          'TooltipString', 'Print preview' );

Изменение значка

На этом этапе вы можете видеть, что все атрибуты кнопки доступны для редактирования, включая изображение в соответствии с исходным вопросом.

В частности, просто измените свойство CData:

% Update the print button to have a print preview icon
% This should be a 16*16 RBG image matrix, use imread to get from file
img = imread( 'printpreview.bmp' )
% Assign CData property to button already acquired
set( btn, 'CData', img );

Вывод (я использовал случайный значок предварительного просмотра, виден 4-й слева):

figure

Добавить новые кнопки

Вы можете добавить новые кнопки, просто создав uipushtool объекты (со свойством CData, установленным для изображения значка) с родительским объектом tbar.

Изменение разделителей

Вертикальные серые разделители можно добавлять или удалять (полезно для создания собственных групп кнопок или при удалении кнопок).Просто установите для свойства 'Separator' значение 'off' или 'on' для разделителя в левой части кнопки.


Для скомпилированного приложения это может быть не так, как в MathWorks T & C, ноэто как не если вы сделаете это!

...