- get what's in the listbox
- add the new entry to the list
- set the entire list
Best way to handle work log listbox output in GUI?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello, thanks for reading this,
What I want to do is set up a listbox that outputs a work log of what I do in the GUI. What I do is output strings to the listbox whenever I do a certain task. My problem is whenever I output a string, it overrides what was already there.
What I do is set the handle for the listbox to a string value whenever I output a new string using set(handles.listbox, ...), and I know this is the problem because I'm continually setting the listbox to a new value. My issue is I don't know how to dynamically add to it without deleting what was already there, it seems wasteful to continually delete and populate it.
What I was thinking of doing is adding to a continually existing string, or concatenate several strings into a longer one using cells. I would still be continuously deleting and populating it, but I wouldn't know how else to do it. Is this the best way, or is there something better to do I'm not understanding?
댓글 수: 0
채택된 답변
per isakson
2014년 5월 14일
편집: per isakson
2014년 5월 14일
"it overrides what was already there" that's the way Matlab works. You need to
Example:
figure
lbh = uicontrol( 'Style', 'Listbox', 'String', {'line1','line2'} );
str = get( lbh, 'String' );
str = cat( 1, {'new line'}, str );
set( lbh, 'String', str )
str{end+1} = 'bottom line';
set( lbh, 'String', str )
댓글 수: 3
per isakson
2014년 5월 14일
편집: per isakson
2014년 5월 14일
I find it most convenient to use a cell array of strings as in the example I added to my answer.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!