Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB GUI用户控件中处理回车/换行

我有一个正在开发的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)))

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:49


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.