2016-12-05 3 views
1

Я пытаюсь изменить цвет фона кнопок переключения в зависимости от вывода массива. В основном у меня есть цикл, который заполняет массив.Изменение цвета togglebutton в matlab в зависимости от вывода массива

number = 20; 
tic 
A = []; 
for i = 1 : number 
    A = [i] 
    pause(1) 
end 

В зависимости от того, какого числа я внутри массива я хочу, чтобы изменить этот цвет фона тумблера в моей GUI. поэтому я попытался с этим:

function togglebutton1_Callback(hObject, eventdata, handles) 
if A == 1 
    set('BackgroundColor','red') 

К сожалению, это не сработало. Буду признателен за любую помощь

+0

Цвет фона не редактируется, поскольку указывает, включен ли переключатель или нет. Вероятно, вам придется прибегнуть к некоторой java для этого: http://stackoverflow.com/questions/25078722/jtogglebutton-how-to-change-the-color – Suever

+0

Привет, в моем основном проекте кнопки получают значения от переключения а также изменить цвета, но в конце я получаю массив как результат, который показывает способ (номера кнопок), и я хотел бы зажечь его с изменениями цвета на кнопку, чтобы он визуализировал, как это происходит. – spr1te

+0

Как я уже сказал, это невозможно напрямую в MATLAB, и вам, скорее всего, придется использовать кнопку переключения Java, вместо этого – Suever

ответ

-2

Я понимаю, что это может не решить вашу фундаментальную проблему, но помните следующее при изменении свойств.

работает со ссылкой на графический объект ручки как свой первый аргумент, то есть на вашу кнопку.

set(button,'BackgroundColor','red') 

Это работает для меня на R2013a. Однако в документации указано, что вы должны использовать ее только для релизов до R2014b. Для высвобождения R2014b и далее, используя точечную нотацию должно быть нормой:

button = uicontrol('Style','togglebutton'); 
button.BackgroundColor = 'r'; 

https://uk.mathworks.com/help/matlab/ref/uicontrol-properties.html#property_BackgroundColor

+0

Вы попробовали это? Он не работает для кнопок переключения. – Suever

+0

Это работает для меня в 2013 году, да. –

+0

'uicontrol ('style', 'toggle', 'Backgroundcolor', 'red')' работает для вас? – Suever

2

Это будет трудно изменить истинный цвет фона uicontrolstyle набор для 'toggle'), т.к. который регулируется базовым java-объектом. Если вы хотите изменить, что вы, вероятно, придется прибегнуть к something like this

Что вы могли сделать, хотя, это полагаться на то, что от Matlab uicontrolsupports HTML-formatted strings. Таким образом, вы можете использовать HTML, чтобы сделать кнопку, как представляется, различный цвет

set(button, 'String', '<HTML><BODY bgcolor="red">Red Toggle'); 

enter image description here

Или лично, я думаю, что это выглядит лучше просто изменить цвет переднего плана

set(button, 'ForegroundColor', 'red') 

enter image description here

+0

Я попробую это в abit и дам u обратную связь позже – spr1te

+0

грустно это не работало – spr1te

+0

@ spr1te Как вы создаете свою кнопку переключения? Пожалуйста, покажите, что код – Suever

Смежные вопросы