listing files in list box using gui

4 次查看(过去 30 天)
i have created gui with list box and 1 pushbuttons,now if i click that push button the name of files in my folder must be displayed in listbox(i have 10images in a folder in D drive),ten if i double click the name of file in file selector ,the image should be displayed,please help hoe to do

采纳的回答

William
William 2012-3-23
Next use a listbox command
if(get(hObject, 'Value') == get(hObject, 'Max'))
filelocation = get(handles.MAT_file, 'string');
%evaluate the sting as if it were a command. See notes on
%apostrophies for this one.
loadfile =['load ''' filelocation ''''];
evalin('base',loadfile);
eval(['varlist = who(''-file'' , ''' filelocation ''');']);
listofvars = [];
for menuFillItr = 1:length(varlist)
listofvars = [listofvars varlist(menuFillItr)];
end
set(handles.listbox1,'String', listofvars);
end
This is just a snippet from some code I wrote a while ago
  4 个评论
Shanmukha priya V
Shanmukha priya V 2014-12-24
I tried doing this.. But I'm getting an error like this: . 'The function listbox1 callback was closed with an 'end', but at least one other function definition was not. To avoid confusion when using nested functions, it is illegal to use both conventions in the same file'. Can you please tell me where exactly should I include the code which you have given? Should I include in list box call back or in the opening function?
Image Analyst
Image Analyst 2014-12-24
Either ALL your callbacks need to end with an "end" statement, or NONE OF THEM do. You can't have some end with an end and others end without an end. My style is that I don't include the final "end" on function definitions. You can use either style but you have to be consistent within an m-file.

请先登录,再进行评论。

更多回答(2 个)

William
William 2012-3-23
first use the Uigetfile
if(get(hObject, 'Value') == get(hObject, 'Max'))
[MATfilename, MATpath, filterindex] = uigetfile('*.MAT','Pick .MAT file')
end
%update the GUI
filelocation = strcat(MATpath, MATfilename)
set(handles.MAT_file, 'string', filelocation);
guidata(hObject, handles); % Update Figure
  1 个评论
Pat
Pat 2012-3-24
William where should i paste these codes,is these codes under pushbutton1_Callback and following codes under listbox1_Callback please help am new to gui

请先登录,再进行评论。


Image Analyst
Image Analyst 2012-3-23
But otherwise, here's a snippet of code I use called LoadImageList(). You can call it when you start up your code (in the OpenFcn function), or, for example, in the callback for the "Specify folder" button where the user browses to the folder they want (using uigetdir or uipickfiles). Don't be afraid of the length. It's just a little long because it's so well commented and robust. I'm sure once you read through it line by line you can understand it. You could make it shorter if you wanted by concatenating a bunch or dir() outputs if you want rather than by filtering the files by extension.
%=====================================================================
% Load up the listbox, lstImageList, with image files
% in the folder handles.CalibrationFolder.
function handles = LoadImageList(handles)
try
% Get the folder into a handy variable name.
% (Change handles.CalibrationFolder as needed for your situation.)
folder = handles.CalibrationFolder;
% Check that the folder actually exists.
if ~isempty(folder)
% Folder is not empty. There is actually some text in it.
if ~exist(folder,'dir')
% Folder does not exist on disk.
WarnUser(['Folder ' folder ' does not exist.']);
return;
end
else
% Folder is empty/null.
WarnUser('ERROR: No folder specified as input for function LoadImageList.');
return;
end
% If it gets to here, the folder exists.
% Get a list of all files in the folder.
filePattern = fullfile(folder, '/*.*');
ImageFiles = dir(filePattern);
% Filter the list to pick out only files of
% file types that we want (image and video files).
ListOfImageNames = {}; % Initialize
for Index = 1:length(ImageFiles)
% Get the base filename and extension.
baseFileName = ImageFiles(Index).name;
[folder, name, extension] = fileparts(baseFileName);
% Examine extensions for ones we want.
extension = upper(extension);
switch lower(extension)
case {'.png', '.bmp', '.jpg', '.tif', '.avi'}
% Keep only PNG, BMP, JPG, TIF, or AVI image files.
ListOfImageNames = [ListOfImageNames baseFileName];
% otherwise
end
end
% Now we have a list of validated filenames that we want.
% Send the list of validated filenames to the listbox.
set(handles.lstImageList, 'string', ListOfImageNames);
catch ME
% Alert the user of the error.
errorMessage = sprintf('Error in LoadImageList().\nThe error reported by MATLAB is:\n\n%s', ME.message);
WarnUser(errorMessage); % WarnUser code is uiwait(warndlg(errorMessage));
% Print the error message out to a static text on the GUI.
set(handles.txtInfo, 'String', errorMessage);
end
return; % from LoadImageList()
%--------------------------------
function WarnUser(warningMessage)
uiwait(warndlg(warningMessage));
return; % from WarnUser()
  1 个评论
Pat
Pat 2012-3-24
Mr.Analyst please tell where i should i paste these codes,in pushbutton_callback or where else and can u tell what is handles.CalibrationFolder please

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by