uipanels list box problems
이전 댓글 표시
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';
답변 (1개)
Image Analyst
2012년 8월 25일
1 개 추천
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
Matt Fig
2012년 8월 25일
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
2012년 8월 31일
Image Analyst
2012년 8월 31일
Have you watched Doug Hull's videos on his blog?
Robert Cumming
2012년 8월 31일
Tulips
2012년 9월 15일
per isakson
2012년 9월 15일
Maybe you should update the code in your question. I guess it is obsolete.
Image Analyst
2012년 9월 15일
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
2012년 9월 15일
Walter Roberson
2012년 9월 15일
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
2012년 9월 16일
Image Analyst
2012년 9월 16일
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
2012년 9월 16일
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
2012년 9월 27일
Image Analyst
2012년 9월 27일
You don't need to understand what uipickfiles does internally, just use it. I simply did
selectedFile = uipickfiles()
and it worked fine.
Image Analyst
2012년 10월 1일
Inside your function LoadImageList(handles), you need to do something like
selectedFiles = uipickfiles()
set(handles.listbox, 'String', selectedFiles);
Tulips
2012년 10월 2일
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!