1

QGraphicsView でのスクロールに問題があります。

QGraphicsView サブクラスでシーン rect を設定しました。

MyQGraphicsView::MyQGraphicsView{
    setSceneRect(0,0,2000,2000)
}

オーバーロードされた paintEvent:

void MyQGraphicsView::paintEvent(QPaintEvent *event){
    qDebug()<<"Paint event";
    QPainter painter(viewport());
    painter.setRenderHint(QPainter::Antialiasing);
    paint(painter);
}
void MyQGraphicsView::paint(QPainter &painter){
    painter.setPen(Qt::NoPen);
    painter.fillRect(QRect(0,0,200,200),Qt::gray);
    painter.fillRect(QRect(500,500,1000,100),Qt::green);
    painter.setPen(QPen(Qt::white,4,Qt::DashLine));
    painter.drawLine(QLine(0,35,200,35));
    painter.drawLine(QLine(0,165,200,165));
}

スクロールすると、2 番目の四角形が表示されません。ウィンドウのサイズを変更すると、そうです。また、スクロールする長方形が有線で拡張されている場合。

この場合、スクロールはどのように実装する必要がありますか? QGraphicsView でのスクロールに関するトピックをいくつか見つけましたが、問題を解決するものはありません。

4

1 に答える 1