用户界面-如何在Matlab的多行EditText中的最后一行添加字符串



我经常使用这种方式将字符串添加到多行editText的最后一行。

示例:编辑前文本:(handles.txtLine)

line 1
line 2
line 3

我想添加字符串"第4行"到它。所以我做了:

msg = get(handles.txtLine,'string');
msg_i = sprintf('nline 4');
msg = [msg msg_i];
set(handles.txtLine,'string',msg)

结果:

line 1
line 2
line 3
line 4

是否有其他方法可以实现相同的功能?

多行编辑控件的String属性可以通过三种方式设置:

  1. 多行字符阵列,例如txt1= ['line 1'; 'line 2']。此处txt1的大小为2x6
  2. 包含换行字符(例如txt2= sprintf('line 1nline 2'))的单行字符数组。这里txt2的大小为1x13
  3. 串的单元阵列,例如txt3 = {'line 1', 'line 2'}

在每种情况下,您都会以不同的方式添加或删除字符串中的文本,每种方法都有优缺点。

1通常是不方便的,因为你所有的线都必须有完全相同的长度,或者用空格填充。但如果是这样的话,那么添加或删除行就很容易了。

2(基本上是现在的方式)通常也不太方便,因为虽然很容易添加行,但从中间删除行就不那么容易了,除非你解析字符串寻找换行符。但如果你只需要添加行,那可能没问题。

我会修改你使用sprintf的方式,然后连接:

msg = sprintf('%sn%s', msg, 'line 4');

是一种更简单、更灵活的语法。

您获取、修改和设置String属性的一般方法很好,尽管如果您愿意,您可以将其全部合并为一个starement,例如:

set(handles.txtLine, 'String', sprintf('%sn%s', get(handles.txtLine, 'String'), 'line4'))

3通常是最方便的,只要你对细胞阵列感到满意。每一行都可以是你喜欢的,添加或删除项目也很容易。

相关内容

  • 没有找到相关文章

最新更新