質問

QSliderから継承するクラスを作成しました。プレーンなものを表示する代わりに、スライダー(グラバー)に絵を描きたいです。どうやってするの?

--

返信を見つけて、返信を受け取った後に投稿しました。レスポンダーに敬意を払って、その返信を選択します。ただし、同じ問題を抱えている人なら誰でも利益を得られるようにコードを共有したいと思います。

void InheritedSlider::paintEvent(QPaintEvent *event)
{
    // uncomment to draw the parent first. Comment out to just ignore it.
    //QSlider::paintEvent(event);

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);

    //painter.translate(width() / 2, height() / 2);
    //painter.scale(100 / 200.0, 100 / 200.0);

    QPainterPath volPath;
    volPath.moveTo(60.0, 40.0);
    volPath.arcTo(20.0, 20.0, 40.0, 40.0, 0.0, 360.0);
    volPath.moveTo(40.0, 40.0);
    volPath.lineTo(40.0, 80.0);
    volPath.lineTo(80.0, 80.0);
    volPath.lineTo(80.0, 40.0);
    volPath.closeSubpath();
    painter.drawPath(volPath);
}
役に立ちましたか?

解決

あなたはそれをすることができます PaintEvent ウィジェットの方法。これにより、ウィジェットの一部またはほんの一部を再描画できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top