2014-12-05 4 views
0

Ранее на прошлой неделе я создал окно на Python, которое изменило размер основного окна на размеры фонового изображения. Я хотел сделать то же самое в QT. Мне удалось выяснить синтаксис, чтобы изменить размер главного окна через его конструктор.Как изменить размер главного окна на размеры ресурса изображения

this->setFixedSize(QSize(600, 600)); 

Мне интересно, как я мог бы теперь установить параметры ширины и высоты для одних и тех же параметров изображения в файле ресурсов. Я думал, что-то вроде этого:

QGraphicsPixmapItem image(QPixmap("url(:/images/background.png);")); 
int x = image.width 
int y = image.length 
this->setFixedSize(QSize(x, y)); 

редактировать:

В заключение, я хочу, чтобы изменить размер главного окна в тех же размерах файла изображения, которое так окно оборачивается вокруг фонового изображения. Согласно this post, я должен разобрать заголовок изображения, чтобы прочитать размеры ... звуки слишком сложны. Есть ли сторонняя библиотека?

+0

Вы пробовали 'resize()'? – Ilya

+0

Нет, нет. Я хочу изменить размер главного окна на те же размеры файла изображения, что и окно обтекает фоновое изображение. Согласно [этому сообщению] (http://stackoverflow.com/questions/5354459/c-how-to-get-the-image-size-of-a-png-file-in-directory), я должен разобрать заголовок изображения для чтения измерений ... звучит слишком сложно. Есть ли сторонняя библиотека? –

ответ

1

Вместо использования QGraphicsPixmapItem использовать QImage, чтобы получить размер изображения.

QImage image(":/images/background.png"); 
if(!image.isNull()) 
    setFixedSize(image.size()); 
else 
    //loading the image failed, show some error message or something 
+0

Спасибо, я попробую это. Какой заголовок мне нужно импортировать, чтобы использовать эту библиотеку 'QImage'? –

+0

@the_prole '#include '. Это также упоминается в документах QImage, с которыми я связан в ответе. – thuga

+0

Почему заголовки в моем 'main.cpp' отличаются от заголовков в документации QT, например. '#include" ui_mainwindow.h "' vs. '#include '? В любом случае 'QImage' не распознается ... –

0

Вы пытались настроить размер, после установки на новый?

this->setFixedSize(QSize(x, y)); 
this->adjustSize(); 
Смежные вопросы