uipanels list box problems
Mostrar comentarios más antiguos
sir,can I know why the list of images cannot be listing in my gui after built the coding?here is the code
window=figure( 'Units', 'pixel' ,...
'Position', [320,180,650,500] ,...
'Resize', 'on' ,...
'Color', [.7,.7,.7] ,...
'NumberTitle', 'off' ,...
'MenuBar', 'none' ,...
'Name', 'Pre-Processing Process');
headpanel = uipanel('Parent',window,'FontSize',15,...
'Title','Main', 'TitlePosition','lefttop',...
'BackgroundColor',[.8,.8,.8] ,...
'FontWeight','bold',...
'Position',[.22 0.14 .45 .65]);
leftpanel=uipanel('Parent',window,'BackgroundColor',[.8,.8,.8],...
'Position',[.04 .29 .15 .5]);
axes1= axes( 'Parent',headpanel,...
'Units','normalized', ...
'Position',[0.01 0.01 2 2]);
set(axes1, ...
'Visible', 'on', ...
'Units', 'pixels');
sButton = uicontrol(window,'String','Select Image Folder',...
'CallBack', 'folder=uigetdir(''C:\Users\s'',''Select Image Folder'');',...
'Position',[55 620 190 25]);
'if folder ~= 0,';...
% Assign the value if they didn't click cancel.
'handles.ImageFolder = folder;';...
'handles = LoadImageList(handles)';...
'guidata(hObject, handles)';...
'else';...
'msgbox(''No folder specified as input for function LoadImageList.'', ''select folder'',''modal'');';...
'end,';...
hDeplb = uicontrol(leftpanel,'Style','listbox','Units','normalized',...
'String',{'Select Image'},...
'Position',[.01 .0 1 1],'BackgroundColor','white','FontSize',9);
'varargout{1} = handles.output;';...
'handles.output= hObject;';...
'guidata(hObject, handles);';...
ListOfImageNames = {};
' folder = handles.ImageFolder';...
'if ~isempty(handles.ImageFolder) ';...
'if exist(folder,''dir'') == false';...
'msgbox([''Folder '' folder does not exist.''])';...
'end';
' else';
'msgbox(''No folder specified as input for function LoadImageList.'');';...
'end';
Respuestas (1)
Image Analyst
el 25 de Ag. de 2012
1 voto
Probably because the syntax is just so totally mangled. You should really read the Getting started section of the help. You don't need to use ... at the end of every line. You only need to use it if you have a really long line of code - a single line of code - that you want to split over 2 or more lines for readability purposes. Second, your code looks like some kind of weird hybrid of GUIDE (because I can see the "handles" structure" and creating your own controls via code (uipanel, uicontrol, etc.) Plus a huge portion of the lines of code are enclosed within apostrophes for some unknown reason. Who told you to do that? I don't know what else to say except that you need to clean it up a lot. Watch Doug Hull's video tutorials - that might help.
17 comentarios
Matt Fig
el 25 de Ag. de 2012
I wonder if those are supposed to be callback strings?! But then why is there a varargout?? Confused....
I second IA's recommendation to go back to basics and read up on the documentation on GUI making.
Tulips
el 31 de Ag. de 2012
Image Analyst
el 31 de Ag. de 2012
Have you watched Doug Hull's videos on his blog?
Robert Cumming
el 31 de Ag. de 2012
Tulips
el 15 de Sept. de 2012
per isakson
el 15 de Sept. de 2012
Maybe you should update the code in your question. I guess it is obsolete.
Image Analyst
el 15 de Sept. de 2012
Have you tried sort()? Get the 'string' property of the listbox. Then call sort, then set the string property to send the sorted list back into the listbox. Something like (untested):
set(handles.listbox1, 'String', sort(get(handles.listbox1, 'String')));
Tulips
el 15 de Sept. de 2012
Walter Roberson
el 15 de Sept. de 2012
uigetdir() to allow the user to select the directory. dir() to get the contents of the directory. set() the String property of the listbox to the names of the files you found in the directory.
Tulips
el 16 de Sept. de 2012
Image Analyst
el 16 de Sept. de 2012
folder = uigetdir()
filenamesStructure = dir(folder)
baseFileNames = strvcat(filenamesStructure.name)
set(handleToListbox, 'String', baseFileNames);
You might be interested in this File Exchange submission: http://www.mathworks.com/matlabcentral/fileexchange/10867-uipickfiles-uigetfile-on-steroids
Walter Roberson
el 16 de Sept. de 2012
You would usually assign the callback function at the time you create the listbox. Or are you talking about the callback for the button to 'select from directory' ?
Tulips
el 27 de Sept. de 2012
Image Analyst
el 27 de Sept. de 2012
You don't need to understand what uipickfiles does internally, just use it. I simply did
selectedFile = uipickfiles()
and it worked fine.
Image Analyst
el 1 de Oct. de 2012
Inside your function LoadImageList(handles), you need to do something like
selectedFiles = uipickfiles()
set(handles.listbox, 'String', selectedFiles);
Tulips
el 2 de Oct. de 2012
Categorías
Más información sobre Image Arithmetic en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!