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