2017-03-06 1 views
0
나는 이미지의 일부 스크롤바 스타일을 필요

처리합니다.QScrollBar 스타일 시트의 크기 조정은

m_scrollBarStyleSheet = "QScrollBar:horizontal { \n " 
       " background-color: qlineargradient(x1: 1, y1: 0.5, x2: 0, y2: 0.5, stop: 0 magenta, stop: 1 #FFFFFF); \n " 
       " border: 1px solid black; \n" 
       " height: 35px; \n " 
       " width: 261px; \n" 
       " margin: 0 0 0 0; \n " 
       "} \n " 
       "QScrollBar::handle:horizontal { \n" 
       " background-color: silver; \n" 
       " border: 1px solid grey; \n" 
       " height: 55px; \n" // seems to do nothing 
       " width: 2px; \n" // seems to do nothing 
       "} \n" 
       "QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { \n" // hides arows 
       " border: none; background: none; \n" 
       "} \n" 
       "QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { \n" // makes background show through 
       " border: none; \n" 
       "} \n"; 

QString s = m_scrollBarStyleSheet; 
s.replace("magenta", "yellow"); // whatever color I need 
horizontalScrollBar->setStyleSheet(s); 
... 

결과 : 충분히 가까이 : 내가 할

enter image description here

그러나 아무것도 날 (? 처리) 실제 스크롤 조각의 크기를 조정할 수 있도록하는 것 - 나는 그것이 얇은 할 수 없으며, 나는 그 높이가 뒤에있는 사각형의 높이를 초과 할 수있는 것을 보지 못했습니다.

작은 슬라이딩 사각형의 크기를 조정하여 가능한 한 원하는 이미지를 얻을 수 있습니까?

주 내가 Qt는 4.8

답변

1

을 사용해야합니다 나는 그것을 바의 백분율로 계산, QScrollBar 핸들 폭이 변경 될 수 없음을 알게되었습니다.

그래서 스크롤 막대를 막대의 총 너비를 초과하는 핸들 높이로 가질 수있는 슬라이더로 교체했습니다. 음수 여백을 설정합니다.

(이 질문에 사용 된 스타일을 업데이트하려면 example을 사용했습니다).

관련 문제