Russian Qt Forum

Qt => Мультимедиа => Тема начата: aliks-os от Декабрь 28, 2009, 11:55



Название: QLabel выравнивание картинки
Отправлено: aliks-os от Декабрь 28, 2009, 11:55
Диалог->ScroolArea->QLabel

В лейбу вставлюя картинку картинка выравнивается по верху и левому краю, как сделать чтобы выравнивалось все по центру.
Свойства aligment выставлено выравнивать по центру

(http://keep4u.ru/imgs/s/2009/12/27/dd/dd091cc9867dfb11aabfa3c194cfc22c.jpg) (http://keep4u.ru/full/2009/12/27/dd091cc9867dfb11aabfa3c194cfc22c/jpg)


Название: Re: QLabel выравнивание картинки
Отправлено: Dendy от Декабрь 28, 2009, 12:25
Если в QLabel такого нет - можно выровнять сам QLabel относительно родительского окна.


Название: Re: QLabel выравнивание картинки
Отправлено: aliks-os от Декабрь 28, 2009, 12:37
Так вроде бы и у ScrollArea тоже выставил параметр aligment


Название: Re: QLabel выравнивание картинки
Отправлено: ilot от Декабрь 28, 2009, 12:43
Цитата: Dendy
Если в QLabel такого нет - можно выровнять сам QLabel относительно родительского окна.
Все там есть. В данном случае QLabel растягивается до размеров загружаемой картинки, т.е. картинка занимает весь виджет, потому выравнивания не видно. Нужно либо задать для экземпляра QLabel минимальный размер, совпадающий с размером области прокрутки, либо делать как предложил Dendy.

Цитата: aliks-os
Так вроде бы и у ScrollArea тоже выставил параметр aligment
покажите код


Название: Re: QLabel выравнивание картинки
Отправлено: aliks-os от Декабрь 28, 2009, 12:56
В принципе все настройки делаю в дизайнере, но часть обрабатываю и в файле

    m_ui->labelImage->adjustSize();
    double h = double(double(m_ui->scrollArea->size().height())/double(m_ui->labelImage->pixmap()->size().height()));
    double w = double(double(m_ui->scrollArea->size().width())/double(m_ui->labelImage->pixmap()->size().width()));
    double r;
    if (h<w) r = h;
    else r = w;
    m_ui->labelImage->resize(r * m_ui->labelImage->pixmap()->size());

UI файл прикреплен