문제

QSLIDER에서 물려받는 수업을 만들었습니다. 나는 평범한 것을 보여주는 대신 슬라이더 (Grabber)에 그림을 그리고 싶습니다. 어떻게 하는가?

--

답변을 찾아서 답장을받은 후 게시했습니다. 응답자와 관련하여 그 답변을 선택하겠습니다. 그러나 동일한 문제가있는 사람이 누구나 혜택을 볼 수 있도록 코드를 공유하고 싶습니다.

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