Qt之QSlider圓形滑柄樣式

簡述

QSlider的滑柄樣式設計遵循box model,但是在設計的過程中,我發現,邊界的寬度變化會對滑柄高度造成擠壓,這種擠壓使得滑柄樣式設計需要一些特殊處理。下面以圓形滑柄樣式設計來介紹這種擠壓的處理方法。

擠壓

通常border的變化不會對contents造成影響,以QPushButton爲例,如下所示:

但是在QSlider的handle中卻會出現如下情況

contents的水平尺寸沒變,但是垂直尺寸卻被邊界擠壓了。

設計圓形滑柄

要設計圓形滑柄,先要準備一個border和contents都是正方形的滑柄。由於垂直方向的contents被border佔據了一部分,所以contents的垂直尺寸要比水平尺寸大兩倍的邊界寬度。contents的垂直尺寸爲滑槽高度和上下邊距之和,設計步驟如下:

  • 確定contents水平尺寸
  • 確定邊界寬度
  • 調整槽寬度或者上下邊距,確保:垂直尺寸=水平尺寸+兩倍的邊界寬度

當然,可以隨意調整,只要滿足如下公式:

槽寬度+上下邊距=水平尺寸+兩倍邊界寬度

最終效果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章