2016-12-05 67 views
1

我想根据我的数组输出更改切换按钮的背景颜色。基本上我有一个循环正在填充数组。根据数组输出更改matlab中的togglebutton的颜色

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

根据i在数组里面是什么号码我想改变的切换按钮是背景颜色在我的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

这将是难以改变uicontrol的真实背景颜色(与style设置为'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

我会试着这个在高级并给你以后反馈 – spr1te

+0

可悲的是它没有工作 – spr1te

+0

@ spr1te你是如何创建你的切换按钮?请显示代码 – Suever