C++ 调整大小和qscrollara

C++ 调整大小和qscrollara,c++,qt,C++,Qt,我想让我的框架“ImageLoader”根据图像大小调整大小。如果可能的话,我想它调整窗口大小,以适应。如果图像比屏幕大,或者用户缩小了框架,我希望它添加滚动条。我尝试添加一个Qscrollarea并设置小部件,但不管怎样,它都会添加滚动条。我如何让qt表现得像我想要的那样 ImageLoader::ImageLoader(QWidget *parent, QImage &image) : GLWindow(parent) { mCentralWidget = new QWidg

我想让我的框架“ImageLoader”根据图像大小调整大小。如果可能的话,我想它调整窗口大小,以适应。如果图像比屏幕大,或者用户缩小了框架,我希望它添加滚动条。我尝试添加一个Qscrollarea并设置小部件,但不管怎样,它都会添加滚动条。我如何让qt表现得像我想要的那样

ImageLoader::ImageLoader(QWidget *parent, QImage &image) : GLWindow(parent)
{
    mCentralWidget = new QWidget(this);
    setCentralWidget(mCentralWidget);

    QHBoxLayout *mainLayout = new QHBoxLayout;
    mainLayout->setMargin(0);
    mCentralWidget->setLayout(mainLayout);

    ImageBounds* bounds = new ImageBounds(this);
    mainLayout->addWidget(bounds);

    mCanvas = new Canvas(this);
    mCanvas->setMinimumSize(image.width(), image.height());
    QScrollArea* scrollArea = new QScrollArea;
    scrollArea->setWidget(mCanvas);
    mainLayout->addWidget(scrollArea);

    mSpnRows = 1;
    mSpnColumns = 1;
    mSpnX = 0;
    mSpnY = 0;

    connect(bounds->spnRows, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ImageLoader::setSpnRows);
    connect(bounds->spnColumns, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ImageLoader::setSpnColumns);
    connect(bounds->spnXsep, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ImageLoader::setSpnX);
    connect(bounds->spnYsep, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ImageLoader::setSpnY);

    QImage checkers = createCheckers();
    mCheckers = new Sprite(checkers, width(), height());

    mSpr = new Sprite(image);
    mGrid = new Grid(mSpr->width(), mSpr->height(), 1, 1, 0, 0);
} 
ImageLoader::ImageLoader(QWidget*parent、QImage和image):GLWindow(parent)
{
mCentralWidget=新的QWidget(此);
setCentralWidget(mCentralWidget);
QHBoxLayout*mainLayout=新的QHBoxLayout;
主布局->设置边距(0);
mCentralWidget->setLayout(主布局);
ImageBounds*bounds=新的ImageBounds(此);
mainLayout->addWidget(边界);
mCanvas=新画布(此);
mCanvas->setMinimumSize(image.width(),image.height());
QScrollArea*scrollArea=新的QScrollArea;
scrollArea->setWidget(mCanvas);
mainLayout->addWidget(滚动区域);
mSpnRows=1;
mSpnColumns=1;
mSpnX=0;
mSpnY=0;
连接(bounds->spnRows、static_cast(&QSpinBox::valueChanged)、this和ImageLoader::setSpnRows);
连接(边界->spnColumns、静态转换(&QSpinBox::valueChanged)、this和ImageLoader::setSpnColumns);
连接(bounds->spnXsep、static_cast(&QSpinBox::valueChanged)、this和ImageLoader::setSpnX);
连接(bounds->spnYsep,static_cast(&QSpinBox::valueChanged),this,&ImageLoader::setSpnY);
QImage checkers=createCheckers();
mCheckers=新精灵(棋盘格,宽度(),高度());
mSpr=新精灵(图像);
mGrid=新网格(mSpr->width(),mSpr->height(),1,1,0,0);
}