2012-02-22 1 views
0

image http://wiki.metrotek.spb.ru/mw/images/a/a9/Style-override.pngQSpinBox 화살표는 외부 회선 편집 (CSS)을 배치

어떻게 Qt는 CSS의 도움으로 그것을 할?

나는

subcontrol-origin: margin; 
position: absolute; 

하지만 성공을 사용하려고했다. 어떤 도움

감사

편집

내 문제에 대한 도움과 최종 CSS 주셔서 감사합니다 : 보너스 : 원하는 경우 같은

QSpinBox#spin { 
margin-left: 20px; /* make room for the arrows */ 
margin-right: 20px; /* make room for the arrows */ 
width: 20px; 

border: 2 solid #515151; 
background-color: #434343; 
} 

QSpinBox#spin::up-button { 
subcontrol-origin: margin; 
subcontrol-position: center left; 

width: 19px; 
border-width: 1px; 
} 

QSpinBox#spin::up-arrow { 
image: url(:/res/images/up.png); 

min-width: 19px; 
min-height: 14px; 
max-width: 19px; 
max-height: 14px; 
height: 19px; 
width: 14px; 
} 

QSpinBox#spin::up-button:pressed { 
top: 1px; 
right: 1px; 
} 

QSpinBox#spin::down-button { 
subcontrol-origin: margin; 
subcontrol-position: center right; 
width: 19px; 
border-width: 1px; 
} 

QSpinBox#spin::down-arrow { 
image: url(:/res/images/down.png); 

min-width: 19px; 
min-height: 14px; 
max-width: 19px; 
max-height: 14px; 
height: 19px; 
width: 14px; 
} 

QSpinBox#spin::down-button:pressed { 
top: 1px; 
left: 1px; 
} 

추가 CSS 오른쪽의 수정 외부에있는 '위, 아래'화살표 위치 설정 위치 :

QSpinBox#spin { 
margin-right: 40px; /* make room for the arrows */ 
width: 20px; 

border: 2 solid #515151; 
background-color: #434343; 
} 

QSpinBox#spin::up-button { 
subcontrol-origin: margin; 
subcontrol-position: center right; 
position: relative; 

left: -20px; /* shift position back*/ 
width: 19px; 
border-width: 1px; 
} 

QSpinBox#spin::down-button { 
subcontrol-origin: margin; 
subcontrol-position: center right; 
width: 19px; 
border-width: 1px; 
} 

답변

1

Qt 스타일 시트 가이드를 살펴 보셨습니까?

here is the link

QSpinBox { 
    padding-right: 15px; /* make room for the arrows */ 
    border-image: url(:/images/frame.png) 4; 
    border-width: 3; 
} 

QSpinBox::up-button { 
    subcontrol-origin: border; 
    subcontrol-position: top right; /* position at the top right corner */ 

    width: 16px; /* 16 + 2*1px border-width = 15px padding + 3px parent border */ 
    border-image: url(:/images/spinup.png) 1; 
    border-width: 1px; 
} 

QSpinBox::down-button { 
    subcontrol-origin: border; 
    subcontrol-position: bottom right; /* position at bottom right corner */ 

    width: 16px; 
    border-image: url(:/images/spindown.png) 1; 
    border-width: 1px; 
    border-top-width: 0; 
} 

는 그냥 서브 컨트롤 위치를 조정 : 그들은 당신의 위로를 배치하는 방법의 아래 화살표 정말 구체적인 예를 가지고있다. 또한 QSpinBox의 패딩을 조정하여 왼쪽에 패딩을 지정합니다.