防止 GUI 文本中的自动换行

Prevent word wrap in GUI text

我有一个允许用户加载配置文件的 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。缺少的部分可以是 "displayed" 但在可见框之外,或者我可以在显示之前删除的部分。我只需要知道要删除多少字符串。

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

完成此操作的一种方法是读取文本框的长度并在显示之前缩短字符串。

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);