Russian Qt Forum
Сентябрь 30, 2024, 10:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QMainWindow/QLabel проблема с ресайзом.  (Прочитано 2690 раз)
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);, то всё изменяется корректно. Подскажите, пожалуйста, в какую сторону копать.
Записан
Jabberwokky
Гость
« Ответ #1 : Сентябрь 26, 2009, 18:43 »

Проблема решилась с помощью setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);

Тему можно удалять.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.106 секунд. Запросов: 20.