【问题标题】:Changing color of togglebutton in matlab depending on array output根据数组输出更改matlab中togglebutton的颜色
【发布时间】:2016-12-05 13:41:33
【问题描述】:

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

 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')

很遗憾,它没有用。我会很感激任何帮助

【问题讨论】:

  • 背景颜色不可编辑,因为它指示是否按下切换。为此,您可能不得不求助于一些 java:stackoverflow.com/questions/25078722/…
  • 您好,在我的主项目中,按钮通过切换获取值并更改颜色,但最后我得到一个数组作为结果,它显示了一种方式(按钮编号),我想通过每个按钮的颜色变化来点亮它,以便可视化它的方式。
  • 正如我所说,直接在 MATLAB 中是不可能的,您可能不得不改用 Java 切换按钮
  • 也许我解释错了,我不想在按下任何切换按钮时更改切换按钮的颜色...我想根据数组中的数字更改切换按钮的颜色

标签: arrays matlab


【解决方案1】:

要更改uicontrol 的真实背景颜色(将style 设置为'toggle')将很困难,因为这是由底层java 对象控制的。如果你想改变它,你可能不得不求助于something like this

可以做的事情是依赖于 MATLAB 的 uicontrol supports HTML-formatted strings 的事实。所以你可以使用 HTML 让按钮看起来是不同的颜色

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

或者就个人而言,我认为简单地改变前景色会更好

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

【讨论】:

  • 我会在升技尝试一下,稍后再给你反馈
  • @spr1te 你是如何创建你的切换按钮的?请出示该代码
  • 我通过指南界面创建了一个静态切换按钮矩阵,然后全部导入(它们都是回调)。在这些回调中,如果按下一次或两次,按钮已经改变颜色。最后我得到一个答案数组,例如[1 2 3 4 5] 然后我希望切换按钮 1-5 以另一种颜色亮起(无需按下它们),这是我的基本问题
【解决方案2】:

我知道这可能无法解决您的根本问题,但在更改属性时请记住以下几点。

set 将句柄图形对象的引用作为其第一个参数,即您的按钮。

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

【讨论】:

  • 你试过了吗?它不适用于切换按钮。
  • uicontrol('style', 'toggle', 'Backgroundcolor', 'red') 适合你吗?
  • 没有错误,该值在我可以测试的所有版本(2014a 及更高版本)上都被忽略
  • 它在我的 matlab 版本上也被忽略(2016a)
  • 啊,我明白了。有道理,在这种情况下,您是否尝试过使用点符号来更改属性,例如
猜你喜欢
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2019-07-30
  • 1970-01-01
相关资源
最近更新 更多