2012-07-17 4 views
3

UI 요소를 만들려면 uicontrol을 사용하고 있습니다. 다음은 내가 GUI 요소가 화면에서 사라지고 옵션을 정규화 단위를 사용하고 때 문제가 내 코드 여기Matlab UIControl 단위

uicontrol('Style','pushbutton', 'String','Load data','Parent',hTabs(1),'Position',[250 825 80 20], 'Callback',@ButtonCallback); 

입니다. GUI가 다른 화면 해상도에서 조정되도록 표준화를 사용하고 싶습니다. 이것에 대한 어떤 생각이 나에게 매우 도움이 될 것입니다.

답변

2

Normalized 단위를 사용할 때 0과 1 사이의 위치를 ​​정의해야합니다. 0은 하단/왼쪽이고, 1은 포함 된 개체의 전체 높이/너비입니다.

현재이 범위를 벗어나는 번호를 사용하여 위치를 정의하고 있습니다. 당신은 두 가지 일을 할 수 있습니다.

  • 스위치는 (아래 입증) 별도의 함수 호출에 normalized에 단위
  • 정규화 단위로 uicontrol 만들기,하지만 당신은에 적절한 위치 벡터를
  • 여기

있습니다 예를 계산해야합니다 하는 방법

간단한 해결책은 uicontrol을 만든 다음 단위를 일반 전화로 별도의 호출로 설정하는 것입니다.

(210)
u = uicontrol(...) %don't specify the units 
set(u,'Units', 'Normalized'); % this solves your problem 

당신은 그런 정규화 단위로 uicontrol 만들려면 다음 번호를 사용하여 표준화 된 단위

normPos = get(u, 'Position') % get the position in normal space 

의 위치 벡터를 얻고 싶다면 :

u = uicontrol(...,'Units','Normalized', 'Position', normPos); 
1

'units','normalized' 옵션을 사용하는 경우 위치 벡터를 변경해야합니다. 도형 기준 시스템은 0과 1 사이의 좌표를 갖는다.

예.

uicontrol('Style','pushbutton',... 
      'String','Load data',... 
      'Parent',hTabs(1),... 
      'units','normalized',... 
      'Position',[0 0 0.1 0.1],... 
      'Callback',@ButtonCallback); 

은 상위 패널의 왼쪽 하단 모서리에 높이와 너비의 10 % 크기의 버튼을 제공합니다.