slider for scrolling in GUI
이전 댓글 표시
Hello! I have some problems with a slider that I am using for moving my objects on an interface.
This is what I am using:
pos1=get(handles.btn1,'Position');
pos2=get(handles.btn2,'Position');
pos3=get(handles.edittxt,'Position');
slider_value=get(hObject,'Value');
set(handles.btn1,'Position',[pos1(1) pos1(2)-slider_value+1 pos1(3) pos1(4)]);
set(handles.btn2,'Position',[pos2(1) pos2(2)-slider_value+1 pos2(3) pos2(4)]);
set(handles.edittxt,'Position',[pos3(1) pos3(2)-slider_value+1 pos3(3) pos3(4)]);
At this point I am blocked because I really don't know how to move the scroll bar up and down. I don't know how to make conditions... Please help!!!
댓글 수: 2
Jan
2011년 9월 12일
Please format your code. See: http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
I do not understand the question. The scrollbar is moved by the mouse. And conditions are implemented by the IF statement. Please explain, what you want to achieve.
Diana Acreala
2011년 9월 13일
답변 (1개)
Walter Roberson
2011년 9월 12일
0 개 추천
You would put code such as that in the callback for a slider.
I do not recommend that code. As noted in response to your earlier question, you should instead insert your elements in a uipanel and then set() the Position of the panel in your scroll callback: that will have the effect of moving everything contained within the uipanel all as a group.
If you want to position a slider to a particular location, you set() the value property of the slider.
댓글 수: 4
Diana Acreala
2011년 9월 13일
Walter Roberson
2011년 9월 13일
Store the _original_ positions for each item, such as in the item's UserData property, and then apply the slider value relative to the _original_ position.
If you have a big interface that cannot be seen totally on small monitors, that is often a sign that you should be redesigning your interface, such as with pop-up controls or menu items that temporarily give access to a particular section of the interface and then hide it mostly away again afterwards.
If you are using a new enough version of MATLAB, using uitab() might be another possibility. I have, though, not yet noticed anything with the uitab() interface that is not essentially the same as having a series of uipanel() and choosing which panel you want to be visible.
Diana Acreala
2011년 9월 13일
Walter Roberson
2011년 9월 13일
That corresponds to using "normalized" units in my prior discussion of your options, http://www.mathworks.com/matlabcentral/answers/15641-adopt-the-gui-window-to-my-computer-settings
As I noted then: some GUI elements (especially text) look very ugly if they are specified in "normalized" units
카테고리
도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!