防止 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);
我有一个允许用户加载配置文件的 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);