2014-05-15 30 views
0

Q得到的QGraphicsView的大小:我怎样才能得到graphicsviewwidthheight从我自己的graphicsItemQGraphicsItem继承?从的QGraphicsItem

回答

3

假设只有一个看你的场景:

#include <QtWidgets> 

class SimpleItem : public QGraphicsItem 
{ 
public: 
    QRectF boundingRect() const 
    { 
     qreal penWidth = 1; 
     return QRectF(-10 - penWidth/2, -10 - penWidth/2, 20 + penWidth, 20 + penWidth); 
    } 

    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) 
    { 
     QGraphicsView *view = scene()->views().first(); 
     qDebug() << "View width:" << view->width() << "height:" << view->height(); 
     painter->drawRect(-10, -10, 20, 20); 
    } 
}; 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QGraphicsView view; 
    QGraphicsScene *scene = new QGraphicsScene; 
    scene->addItem(new SimpleItem()); 
    view.setScene(scene); 
    view.show(); 
    return app.exec(); 
} 

QGraphicsItem::scene()QGraphicsScene::views()

+0

谢谢,这正是我需要的。 – Omid