Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT缩放到多边形_C++_Qt_Qgraphicsview - Fatal编程技术网

C++ QT缩放到多边形

C++ QT缩放到多边形,c++,qt,qgraphicsview,C++,Qt,Qgraphicsview,我有一个固定大小的QGraphicsview和我自己的类QGraphishWidget类 GraphWidget::GraphWidget(QWidget *parent) :QGraphicsView(parent) { QGraphicsScene *scene = new QGraphicsScene(this); setScene(scene); scale(1,-1); setWindowTitle(tr("Poly")); } void

我有一个固定大小的QGraphicsview和我自己的类QGraphishWidget类

GraphWidget::GraphWidget(QWidget *parent)
    :QGraphicsView(parent)
{
    QGraphicsScene *scene = new QGraphicsScene(this);
    setScene(scene);

    scale(1,-1);
    setWindowTitle(tr("Poly"));
}


void GraphWidget::showPoly(){
    scene()->clear();
    scene()->setSceneRect(QRectF());
    QPolygonF polygon;
    QPen pen(Qt::black,1);
    QBrush brush(Qt::black);
    brush.setStyle(Qt::SolidPattern);

    polygon<< QPointF(0,0)<< QPointF(10,0)<< QPointF(15,20)<<QPointF(5,10);
    ;
    QGraphicsPolygonItem *polyItem=scene()->addPolygon(polygon,pen);
    fitInView(polyItem);
}
场景可能会聚焦多边形并缩放它? 我试过fitinView或SetscenInstitute,但没有效果,多边形仍然很小

编辑

boundingRect;>

使用fitInViewpolyItem->boundingRect

问题是我的QGraphicsview是固定的,所以fit-in视图必须放大。它不能改变Qgraphicsview的大小,所以我得到了答案

问题是我在构造函数内部调用了showPoly。但此时Qgraphicsview的大小并不是固定的

我使用QSingleShot的工作环境

#include "mainwindow.h"
#include <QApplication>
#include <QTimer>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    QTimer::singleShot(1, &w,SLOT(callShowPoly()));

    return a.exec();
}