防止GUI文本中的自动换行

时间:2016-10-20 15:20:07

标签: matlab text matlab-guide word-wrap

我有一个MATLAB GUI,允许用户加载配置文件。然后我希望文件名显示在静态文本字段中。我的问题是字符串对于我的文本字段而言太长并且环绕。我希望文本尽可能多地显示字符串而不包装,优先考虑字符串的结尾。

例如,如果我有文件名'C:\folders\more\folders\thisismylongfilename.txt',我目前正在看

C:\folders\more\folders\thisism
              ylongfilename.txt

如果我使用的是编辑文字而不是静态文字,我会看到C:\folders\more\folders\thisism

我希望我的文字字段显示olders\thisismylongfilename.txt,或者...ers\thisismylongfilename.txt。丢失的部分可以显示""但是在可见的盒子外面,或者我可以在显示之前移除的东西。我只需要知道要移除多少字符串。

如何在固定宽度的文本框中正确显示我的长字符串?

1 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是读取文本框的长度并在显示之前缩短字符串。

myString = 'path/to/file/file.txt';

set(handles.textbox,'Units', 'Characters'); %set units to characters for convenience
pos = get(handles.textbox,'Position'); %get the position info
maxLength = floor(pos(3)); %extract the length of the box 
if length(myString) > maxLength % cut beginning if string is too long 
    newStart = length(myString) - maxLength + 1;
    displayString = myString(newStart:end);
else
    displayString = myString;
end

set(handles.textbox,'String', displayString);