Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Jabberwokky от Сентябрь 26, 2009, 13:34



Название: QMainWindow/QLabel проблема с ресайзом.
Отправлено: Jabberwokky от Сентябрь 26, 2009, 13:34
Здравствуйте, опять понадобилось взяться за Qt и натолкнулся на непонятную мне проблему. Пишу программу, которая должна загружать изображение и изменять размеры окна под размер изображения. В качестве основного класса используется QMainWindow, изображение выводится на QLabel.

Код:
Код:
void MainWindow::openImage()
{
QString fileName = QFileDialog::getOpenFileName(this);
if (!fileName.isEmpty())
{
QPixmap myImage(fileName);
int borderWidth = this->frameGeometry().width() - centralImage->width();
int borderHeight = this->frameGeometry().height() - centralImage->height();
this->window()->resize(myImage.width() + borderWidth, myImage.height() + borderHeight);
centralImage->clear();
centralImage->setPixmap(myImage);
}
}

Проблема в том, что если открыть после большого изображения маленькое, то по бокам остаются здоровые полосы (см. аттач). Если закомментить centralImage->setPixmap(myImage);, то всё изменяется корректно. Подскажите, пожалуйста, в какую сторону копать.


Название: Re: QMainWindow/QLabel проблема с ресайзом.
Отправлено: Jabberwokky от Сентябрь 26, 2009, 18:43
Проблема решилась с помощью setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);

Тему можно удалять.