Qt - QScrollBar蒙皮问题

Qt - QScrollBar skinning issue

本文关键字:问题 QScrollBar Qt      更新时间:2023-10-16

我正试图通过重新实现paintEvent函数来覆盖QScrollBar,但我遇到了麻烦。我在滚动条上的按钮上找不到任何信息,我只能在实际的滑块(你可以抓取和拖动的手柄)上找到(有限的)信息。我也看了QStyle,它仍然只给出滚动手柄的信息,而不是按钮。硬编码或使用魔术数字不是一个选择,因为按钮在不同的操作系统上的位置不同(参见:这里)。是否有任何方法以编程方式获得滚动条的布局,以便我可以准确地呈现按钮和滚动手柄在正确的位置?

由于绘画本身是由底层样式完成的,而不是QScrollBar本身,我建议如下:

  1. 使用QProxyStyle来覆盖QScrollBar的绘制。
  2. 这就是Qt如何绘制QScrollBar。你可以选择

作为替代,我建议使用Qt样式表来改变QScrollBar的外观和感觉