我对Matlab的GUI相对比较陌生,并且我使用GUIDE创建了一个简单的GUI。我想连接到一个数据库(已经定义和工作!)并用数据库中的值填充一个列表框,以便用户可以选择使用哪一个(在这种情况下,它们是化合物)。我一直无法找到一个很好的教程或线索如何以这种方式填充列表框。到目前为止,我有:从数据库值填充Matlab 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个项目的整个列表!