【问题标题】:How to use a dynamic data list in Matlab GUIDE listbox如何在 Matlab GUIDE 列表框中使用动态数据列表
【发布时间】:2020-03-24 02:57:50
【问题描述】:

我将 GUIDE 中的列表框项用于预定义的数据列表(字符串),据此我得到“值”并采取一些措施。问题是这个列表现在是在编译和运行程序之前作为静态列表集组成的。现在我的需求发生了变化,必须处理其内容在运行时收到的动态列表。这意味着列表框在运行时而不是在编译之前获取其内容。

这可以做到吗?怎么样?

【问题讨论】:

    标签: matlab user-interface listbox


    【解决方案1】:

    您可以这样做,这里显示的是对按钮单击的响应。重要的属性是列表框的String 属性:

    f = figure();
    lb = uicontrol(f, ...
        'Style', 'listbox', 'String', {'a', 'b', 'c'}, ...
        'Units', 'normalized', 'Position', [.1 .2 .8 .7] ...
    );
    b = uicontrol( f, ...
        'String', 'Change list items', ...
        'Callback', @(h,e) mycallback(lb), ...
        'Units', 'normalized', 'Position', [.1 .1 .8 .09] ...
    );
    
    function mycallback(lb)
        lb.String = {'1','2','3','4','5'};
    end
    

    【讨论】:

    • 问题是你所建议的:lb.String = {'1','2','3','4','5'};也是一个预定义的字符串。我的需要是在运行时从一些外部文本文件中读取字符串内容(即 '1','2','3','4','5' )。
    • 问题是你所建议的:lb.String = {'1','2','3','4','5'};也是一个预定义的字符串。我的需要是在运行时从一些外部文本文件中读取字符串内容(即 '1','2','3','4','5' )。尝试遵循您的想法并从包含来自 textscan (FileID, %s) 命令的数据的变量中获取 lb.String 的内容,但没有成功
    • 我想我需要更多关于你的文本文件结构的信息来回答这个问题。但是,一种猜测是使用d = textscan(fid, '%s'),然后使用lb.String = d{1}。您应该编辑您的问题,因为您的问题似乎是如何读取您的文本文件并热准备用作列表框的字符串值的数据-uicontrol
    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2015-10-11
    • 2012-10-28
    • 2012-11-14
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多