testListBoxlj.m
上传用户:xueli1969
上传日期:2022-07-27
资源大小:19k
文件大小:8k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function varargout = testListBoxlj(varargin)
  2. % TESTLISTBOXLJ M-file for testListBoxlj.fig
  3. %      TESTLISTBOXLJ, by itself, creates a new TESTLISTBOXLJ or raises the existing
  4. %      singleton*.
  5. %
  6. %      H = TESTLISTBOXLJ returns the handle to a new TESTLISTBOXLJ or the handle to
  7. %      the existing singleton*.
  8. %
  9. %      TESTLISTBOXLJ('CALLBACK',hObject,eventData,handles,...) calls the local
  10. %      function named CALLBACK in TESTLISTBOXLJ.M with the given input arguments.
  11. %
  12. %      TESTLISTBOXLJ('Property','Value',...) creates a new TESTLISTBOXLJ or raises the
  13. %      existing singleton*.  Starting from the left, property value pairs are
  14. %      applied to the GUI before testListBoxlj_OpeningFunction gets called.  An
  15. %      unrecognized property name or invalid value makes property application
  16. %      stop.  All inputs are passed to testListBoxlj_OpeningFcn via varargin.
  17. %
  18. %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
  19. %      instance to run (singleton)".
  20. %
  21. % See also: GUIDE, GUIDATA, GUIHANDLES
  22. % Edit the above text to modify the response to help testListBoxlj
  23. % Last Modified by GUIDE v2.5 19-Sep-2005 10:36:50
  24. % Begin initialization code - DO NOT EDIT
  25. gui_Singleton = 1;
  26. gui_State = struct('gui_Name',       mfilename, ...
  27.                    'gui_Singleton',  gui_Singleton, ...
  28.                    'gui_OpeningFcn', @testListBoxlj_OpeningFcn, ...
  29.                    'gui_OutputFcn',  @testListBoxlj_OutputFcn, ...
  30.                    'gui_LayoutFcn',  [] , ...
  31.                    'gui_Callback',   []);
  32. if nargin & isstr(varargin{1})
  33.     gui_State.gui_Callback = str2func(varargin{1});
  34. end
  35. if nargout
  36.     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
  37. else
  38.     gui_mainfcn(gui_State, varargin{:});
  39. end
  40. % End initialization code - DO NOT EDIT
  41. % --- Executes just before testListBoxlj is made visible.
  42. function testListBoxlj_OpeningFcn(hObject, eventdata, handles, varargin)
  43. % This function has no output args, see OutputFcn.
  44. % hObject    handle to figure
  45. % eventdata  reserved - to be defined in a future version of MATLAB
  46. % handles    structure with handles and user data (see GUIDATA)
  47. % varargin   command line arguments to testListBoxlj (see VARARGIN)
  48. % Choose default command line output for testListBoxlj
  49. %%%%%%%%%%%记得解除
  50. handles.output = hObject;
  51. % Update handles structure
  52. guidata(hObject, handles);
  53. % if nargin == 3,
  54. %     initial_dir = pwd;
  55. % elseif nargin > 4
  56. %     if strcmpi(varargin{1},'dir')
  57. %         if exist(varargin{2},'dir')
  58. %             initial_dir = varargin{2};
  59. %         else
  60. %             errordlg('Input argument must be a valid directory','Input Argument Error!')
  61. %             return
  62. %         end
  63. %     else
  64. %         errordlg('Unrecognized input argument','Input Argument Error!');
  65. %         return;
  66. %     end
  67. % end
  68. initial_dir = pwd;
  69. ss=load_listbox(initial_dir,handles);
  70. handles.ss=ss;
  71. % UIWAIT makes testListBoxlj wait for user response (see UIRESUME)
  72. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  73. % % %     add by lijing
  74. % handles.parhandles=varargin{1};
  75. guidata(handles.figure1, handles);
  76. % while handles.ss.IsImage==0
  77. uiwait(handles.figure1); %%%%%%%只有在这里加才不会出错
  78. % handles.figure1
  79. % handles.ss.IsImage
  80. % end
  81. % --- Outputs from this function are returned to the command line.
  82. function varargout = testListBoxlj_OutputFcn(hObject, eventdata, handles)
  83. % varargout  cell array for returning output args (see VARARGOUT);
  84. % hObject    handle to figure
  85. % eventdata  reserved - to be defined in a future version of MATLAB
  86. % handles    structure with handles and user data (see GUIDATA)
  87. % Get default command line output from handles structure
  88. % varargout{1} = handles.output;
  89. varargout{1} = handles;
  90. % delete(handles.figure1)%%%%%%%%%%
  91. % --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles) % hObject    handle to listbox1 (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows. %       See ISPC and COMPUTER.
  92. if ispc     set(hObject,'BackgroundColor','white'); else     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end
  93. % --- Executes on selection change in listbox1. function listbox1_Callback(hObject, eventdata, handles) % hObject    handle to listbox1 (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data (see GUIDATA) % get(handles.figure1,'SelectionType');
  94. index_selected = get(handles.listbox1,'Value');
  95. % file_list = get(handles.listbox1,'String');
  96. %%%%%%%%%%%%大问题%%%%%%%%%%%%%%%%%%%%%%%
  97. filename = handles.ss.sorted_names{index_selected}; 
  98. handles.ss.filename=[pwd,'',filename];
  99. handles.ss.names_disp=handles.ss.sorted_names_disp{index_selected};
  100. handles.ss.imsize=handles.ss.imsize_disp{index_selected}; % (返回)
  101. % handles.ss.f=handles.figure1
  102.     if index_selected<=handles.ss.cnPiont    
  103.         
  104.         cd(handles.ss.filename)
  105.         ss=load_listbox(pwd,handles);
  106.         handles.ss=ss;
  107.         handles.ss.IsImage=0; % 返回一个‘文件’或‘图片’的记录
  108. % filename = handles.ss.sorted_names{index_selected}; 
  109. % handles.ss.filename=[pwd,'',filename];
  110. % handles.ss.names_disp=handles.ss.sorted_names_disp{index_selected};
  111. % handles.ss.imsize=handles.ss.imsize_disp{index_selected}; % (返回)
  112.     else
  113.         handles.ss.IsImage=1;  % (返回)
  114.         
  115. end
  116. %%%%%%%%%%%%
  117. guidata(handles.figure1, handles);
  118. uiresume(handles.figure1);%%%%%%%只有在这里加才不会出错
  119. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function ss=load_listbox(dir_path,handles)
  120. cd (dir_path)
  121. dir_struct = dir(dir_path);
  122. [sorted_names1,sorted_index1] = sortrows({dir_struct.name}');
  123. k=max(sorted_index1);
  124. if k==2
  125. sorted_names{1}='.';
  126. sorted_names{2}='..';
  127. sorted_names_disp{1}='.';
  128. sorted_names_disp{2}='..';
  129. imsize_disp{1}='null';
  130. imsize_disp{2}='null';
  131. cnPiont=2;
  132. else
  133.     sorted_names{1}='.';
  134. sorted_names{2}='..';
  135. sorted_names_disp{1}='.';
  136. sorted_names_disp{2}='..';
  137. imsize_disp{1}='null';
  138. imsize_disp{2}='null';
  139. cn=2;
  140. %%%%%% 找文件夹
  141. for i=1:k
  142.     [path,name,ext,ver] = fileparts(sorted_names1{i});
  143.      switch ext
  144.         case ''
  145.             cn=cn+1;
  146.             cnarray(cn)=cn;
  147.             %sorted_names(cn)=name;
  148.             
  149.             sorted_names{cn}=name;
  150.             sorted_names_disp{cn}=name;
  151.             %name
  152.             imsize_disp{cn}='null';
  153.     end
  154. end 
  155. cnPiont=cn;
  156. % guidata(handles.figure1,handles)
  157. %%%%%% 找图片
  158. for i=1:k
  159.     [path,name,ext,ver] = fileparts(sorted_names1{i});
  160.      switch ext
  161.         case {'.bmp','.jpg','.jpeg','.tif'}
  162.             cn=cn+1;
  163.             cnarray(cn)=cn;
  164.             %sorted_names(cn)=name;
  165.             name=[name,ext];
  166.             sorted_names{cn}=name;
  167.             
  168.             temp=imread(name);
  169.             [m,n]=size(temp);
  170.             m=num2str(m);
  171.             n=num2str(n);
  172.             imsize=['    ',m,'*',n,' (size)'];  %%%  要返回
  173.             name_disp=[name,imsize];
  174.             sorted_names_disp{cn}=name_disp;
  175.             imsize_disp{cn}=imsize;
  176.             %name
  177.     end
  178. end 
  179. end
  180. ss.sorted_names=sorted_names; %%%  要返回
  181. ss.sorted_names_disp=sorted_names_disp; %%%  要返回
  182. ss.imsize_disp=imsize_disp;
  183. ss.cnPiont=cnPiont; %%%  要返回
  184. % % handles.file_names = sorted_names;
  185. % handles.file_names =sorted_names_disp;
  186. % handles.is_dir = [dir_struct.isdir];
  187. % %handles.sorted_index = [sorted_index];
  188. % handles.sorted_index = [cnarray];
  189. set(handles.listbox1,'String',sorted_names_disp,...
  190. 'Value',1)
  191. set(handles.text1,'String',pwd)