如何使用MATLAB GUIDE控件在GUI中顯示文本文件的內容?文本文件可能非常長或非常寬,所以它應該具有垂直和水平滾動條的功能。在MATLAB GUIDE中顯示大型文本文件的最佳方式是什麼?
3
A
回答
6
多行編輯框可以顯示文本的最佳選擇。示例:
%# read text file lines as cell array of strings
fid = fopen(fullfile(matlabroot,'license.txt'));
str = textscan(fid, '%s', 'Delimiter','\n'); str = str{1};
fclose(fid);
%# GUI with multi-line editbox
hFig = figure('Menubar','none', 'Toolbar','none');
hPan = uipanel(hFig, 'Title','Display window', ...
'Units','normalized', 'Position',[0.05 0.05 0.9 0.9]);
hEdit = uicontrol(hPan, 'Style','edit', 'FontSize',9, ...
'Min',0, 'Max',2, 'HorizontalAlignment','left', ...
'Units','normalized', 'Position',[0 0 1 1], ...
'String',str);
%# enable horizontal scrolling
jEdit = findjobj(hEdit);
jEditbox = jEdit.getViewport().getComponent(0);
jEditbox.setWrapping(false); %# turn off word-wrapping
jEditbox.setEditable(false); %# non-editable
set(jEdit,'HorizontalScrollBarPolicy',30); %# HORIZONTAL_SCROLLBAR_AS_NEEDED
%# maintain horizontal scrollbar policy which reverts back on component resize
hjEdit = handle(jEdit,'CallbackProperties');
set(hjEdit, 'ComponentResizedCallback',...
'set(gcbo,''HorizontalScrollBarPolicy'',30)')
要啓用水平滾動,我們必須獲取嵌入式JScrollPane java組件的句柄。我正在使用優秀的FINDJOBJ功能。然後,我們將HorizontalScrollBarPolicy
屬性設置爲javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED
(= 30),如post中所述。我也禁用了對文本的編輯(只讀)。
1
這裏是我所謂的「TextFile.txt的」通用文本文件的解決方案:
f = figure('menu','none','toolbar','none');
fid = fopen('textfile.txt');
ph = uipanel(f,'Units','normalized','position',[0.4 0.3 0.5 0.5],'title',...
'Display window');
lbh = uicontrol(ph,'style','listbox','Units','normalized','position',...
[0 0 1 1],'FontSize',9);
indic = 1;
while 1
tline = fgetl(fid);
if ~ischar(tline),
break
end
strings{indic}=tline;
indic = indic + 1;
end
fclose(fid);
set(lbh,'string',strings);
set(lbh,'Value',1);
set(lbh,'Selected','on');
0
這是我的解決方案。好運
fid = fopen(filename);
str = textscan(fid, '%s', 'Delimiter','\n'); str = str{1};
fclose(fid);
f=figure;
hPan = uipanel(f,'Units','normalized');
uicontrol(hPan, 'Style','listbox', ...
'HorizontalAlignment','left', ...
'Units','normalized', 'Position',[0 0 1 1], ...
'String',str);
+0
如果你添加一些解釋? – fedorqui
相關問題
- 1. 在TextField後面顯示文本的最佳方式是什麼?
- 2. 從網站查看大型文本文件的最佳方式是什麼?
- 3. 在android下載大文件的最佳方式是什麼?
- 4. 在WPF中顯示大文本的最佳方式?
- 5. 在表格中顯示大文本的最佳方式?
- 6. 什麼是縮小大量文本的最佳方式?
- 7. 循環並處理大型(10GB +)文本文件的最佳方法是什麼?
- 8. 什麼是讀取單個類中的大型XML文件的最佳方式
- 9. 什麼是存儲大量文本數據的最佳方式? Mysql/Json文件?
- 10. 什麼是合併大文件的最佳方式(40GB +)
- 11. 在iOS上查看大型PDF文件的最佳方式是什麼?
- 12. 在PHP中讀取大文件的最佳方法是什麼?
- 13. 什麼是在設計文檔中表示XML文件的最佳方式?
- 14. 在.net網站中生成文本文件的最佳方式是什麼?
- 15. 在C/C++中加密文本文件的最佳方式是什麼?
- 16. 在Windows中識別unicode編碼文本文件的最佳方式是什麼?
- 17. 從文件加載腳本的最佳方式是什麼?
- 18. 在Java中創建XML文件的最佳方式是什麼?
- 19. 在C#中生成KML文件的最佳方式是什麼?
- 20. 在PHP中包含文件的最佳方式是什麼?
- 21. 在Delphi中URLEncode文件名的最佳方式是什麼?
- 22. 在php中緩存文件的最佳方式是什麼?
- 23. 什麼是在PHP中創建XLS文件的最佳方式
- 24. 在Ruby中寫入文件的最佳方式是什麼?
- 25. 在android中下載文件的最佳方式是什麼?
- 26. 在Perl中解析Excel文件的最佳方式是什麼?
- 27. 什麼是用PHP創建大型XML文件的最佳方式?
- 28. 什麼是存儲和顯示降價輸入文本的最佳方式?
- 29. 在Django模型中表示URL的最佳方式是什麼?
- 30. 顯示大量文本的最佳方式?
謝謝你的回答。我認爲你的解決方案更好。 – julian
@jpeji:直到我看到你添加的代碼之前,我還不清楚你在原始問題中提出了什麼...我猜源代碼也可以是「值1000字」:) – Amro