我对 Matlab 中的 GUI 比较陌生,我使用 GUIDE 创建了一个简单的 GUI。我想连接到一个数据库(已经定义并且正在工作!)并使用数据库中的值填充一个列表框,以便用户可以选择使用哪个(在这种情况下它们是化合物)。我还没有找到关于如何以这种方式填充列表框的好的教程或线索。到目前为止,我有:
function load_listbox(hObject,handles)
conn = database('antoine_db','','');
setdbprefs('datareturnformat','structure'); %sets the db preferences to a structure
query = 'SELECT ID,"Compound Name" FROM antoine_data ORDER BY ID';
result = fetch(conn,query);
%%The following creates a structure containing the names and ID's
%%of everything in the database
data = struct([]);
for i=1:length(result.ID)
data(i).id = result.ID(i);
data(i).name = char(result.CompoundName(i));
end
names = data.name;
handles.compounds = names;
whos;
set(handles.listbox1,'String',handles.compounds,'Value',1);
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
end
从这样的数据库(或大数组)中填充列表框的最简单方法是什么?截至目前,列表框仅填充了名称中的第一项,这是因为名称仅包含第一项。虽然,如果我只显示“data.name”,我会得到列表中 300 项的整个列表!