Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有一个正在开发的MATLAB程序,用于做一些图像处理工作,并且需要使用用户控件进入我临时创建的MATLAB GUI用户界面中。
此用户控件是一个List Box ,我想在其中插入一些文本。好吧,问题不在于我不能在此处放置文本,我可以使用此调用来做到这一点: set(handles.mylistbox, 'String', 'MyStringToPrint'); 很好的问题是,此调用不允许我在列表框中插入很多行,而只是覆盖上一行。 我希望找到一种方法让我的代码在新行中插入新文本。这不应该那么困难,并且它也是一个简单的模式: texttoprint = 'My text to add' oldtext = get(handles.MyListBox, 'String') %Holding the previous text here set(handles.MyListBox, 'String', [oldtext '\n' texttoprint]) %Setting (no line feed printed) set(handles.MyListBox, 'String', [oldtext char(10) texttoprint]) %Setting (this fails too) 好吧,它还没有出现任何错误,但\n不起作用。我没有任何新线...但必须!! 我该如何解决?问题是我需要在此用户控件中而不是在MATLAB命令行上打印文本(这很简单,只需执行sprintf() )。 该怎么办?谢谢 回答: 对于列表框,将字符串属性设置为单元格 set(myListboxHandle,'String',{'myFirstLine';'mySecondLine'}) 如果要添加另一行,请致电 contents = get(myListboxHandle,'String'); set(myListboxHandle,[contents;{'another line'}]) 否则,对于GUI中的多行文本,请使用char(10)而不是\n ,即 set(someUiControlHandle,'String',sprintf('my first line%smy second line',char(10))) 更多&回答... |
![]() |
![]() |