Clear Filters
Clear Filters

Populate filenames into a GUI listbox..

4 views (last 30 days)
Hey all,
Although i managed to sort (via help from Star Strider) to get only wav files loaded into a listdlg, i now have a GUI (designed through GUIDE) and need to do the same with the listbox i created on there..
The code i have for the simple listdlg is:
d = dir('*.wav'); % Select Only ‘.wav’ Files
str = {};
[s,v] = listdlg('PromptString','Select a wav file:',...
'ListSize', [160 160],...
'Name', 'Choose Audio File..',...
if v
wav_name = str{s}; % File Name Of Selected File
wav_path = which(wav_name); % Path Of Selected File
fprintf(1, '\tNo file was selected.\n')
Obviously this code won't work with the GUI listbox so could someone point me in the right direction to get this working please :)
I've read a few threads on here and on other websites but i can't get them to work correctly.
I presume the goes in the listbox1_CreateFcn section?

Accepted Answer

Ilham Hardy
Ilham Hardy on 19 Nov 2015
To populates the listbox you can use
and put the code in the _OpeningFcn of the GUI (created by GUIDE)
Edmund Paul Malinowski
Edmund Paul Malinowski on 19 Nov 2015
Hey Ilham,
Thanks for your reply. This is the code i put in the OpeningFcn section:
d = dir('*.wav'); % Select Only ‘.wav’ Files
str = {};
set(handles.listbox1,'String',{str}); %set string
....but it kicks up the following error. Any ideas why?
Error in>@(hObject,eventdata)EPM_gui_form('listbox1_CreateFcn',hObject,eventdata,guidata(hObject))
Error using matlab.ui.control.UIControl/set
While setting the 'String' property of 'UIControl':
Cell arrays input to String property may only contain character and numeric matrices.
Error in EPM_gui_form>EPM_gui_form_OpeningFcn (line 66)
set(handles.listbox1,'String',{str}); %set string
Error in gui_mainfcn (line 220)
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});
Error in EPM_gui_form (line 34)
gui_mainfcn(gui_State, varargin{:});
Edmund Paul Malinowski
Edmund Paul Malinowski on 19 Nov 2015
Never mind :) i sussed it. The following line:
set(handles.listbox1,'String',{str}); %set string
...i had {} around the array name str. Got rid of them and bingo :) so now it reads:
set(handles.listbox1,'String',str); %set string

Sign in to comment.

More Answers (0)


Find more on Migrate GUIDE Apps in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!