我们如何创建自定义滑块?

时间:2011-10-24 11:03:53

标签: c++ qt qt4

我想创建一个包含不同滑块手柄的滑块,我想根据滑块中的滑块手柄位置进行绘制。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以使用QProxyStyle来绘制drawComplexControl方法 - 您必须自己绘制整个控件,因为QStyle :: ControlElement中没有单独的标志用于QSlider的部分。

答案 2 :(得分:0)

如果我理解正确,你想要一个滑块不仅会改变它的位置,还会改变它在滑动时的外观,对吗?例如,QDial和QSlider的混合,即。一个带旋钮的滑块。

如果是这样,您将需要子类化QSlider或QAbstractSlider(或QDial)并在您自己的paintEvent()中进行绘制。但请注意,除非您自己关心,否则您将失去所有风格意识(这本身就是一个有趣的话题,请参阅http://doc.qt.io/qt-4.8/style-reference.html了解更多信息)。

Qt演示和示例,或QSlider / QDial源代码本身可以作为如何重载paintEvent()的示例。