Qt - QScrollBar皮肤问题

时间:2011-12-29 23:03:42

标签: c++ qt user-interface skinning

我试图通过重新实现QScrollBar功能来对paintEvent进行换肤,但我遇到了麻烦。我找不到滚动条上按钮的任何信息,我只能在实际滑块上找到(有限的)信息(你可以抓住和拖动的手柄)。我也查看了QStyle,它仍然只提供滚动手柄而不是按钮的信息。硬编码或使用幻数不是一种选择,因为按钮在不同的操作系统上的放置方式不同(请参阅:Here)。有没有办法以编程方式获得滚动条的布局,所以我可以准确地渲染按钮并在正确的位置滚动手柄?

1 个答案:

答案 0 :(得分:0)

由于绘画本身是由底层风格完成的,而不是QScrollBar本身我建议遵循:

  1. 使用QProxyStyle覆盖QScrollBar的绘制。
  2. Qt paints QScrollBar是怎样的。您可以替换
  3. 作为替代方案,我建议使用Qt样式表更改QScrollBar look'n'feel