crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> определение размеров виджета при использовании QPicture
Litkevich Yuriy
  опции профиля:
сообщение 26.12.2009, 1:00
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Пытаюсь рисовать на виджете с использованием QPicture.
void PictureViewer::paintEvent(QPaintEvent*)
{
    QPainter painter;
    if (pic){
        painter.begin(this);
        painter.drawPicture(QPoint(0, 0), *pic);
        painter.end();
    }
    
}
здесь pic - указатель на QPicture.

QPicture я загружаю из файла. На основе QPicture::boundingRect().size(), загруженного рисунка, изменяю размер виджета.
Однако рисунок рисовался с отступом от краёв исходного виджета (рисовальщика) по этому получаю такое:
Прикрепленное изображение
, если увеличить размеры виджета мышкой, то видно весь рисунок:
Прикрепленное изображение


Вопрос:
Как определить отступ сверху и слева от края виджета, до рисунка.

Была мысль спросить у рисовальщика (QPainter'а) минимальную координату, где он побывал, но такого метода я не нашёл.

На всякий случай проект прикрепил: Прикрепленный файл  PictureViewer.zip ( 3,89 килобайт ) Кол-во скачиваний: 177

Файлы:
painter1.log
painter2.log
тестовые, для загрузки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 26.12.2009, 15:01
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Меня не интерисует виджет window.
При изменении размеров окна я вижу ту куртинку, какую создавал (сохранил в файле).
Я умышленно покрасил фон виджета PictureViewer, чтобы видеть его размеры.
Цитата(Litkevich Yuriy @ 26.12.2009, 4:00) *
Как определить отступ сверху и слева от края виджета, до рисунка.
речь идёт о PictureViewer, на котором я рисую. под рисунком я понимаю QPicture, который рисуется рисовальщиком (QPainter).
Я рисую по координатам (0, 0):
painter.drawPicture(QPoint(0, 0), *pic);
, чтобы воспроизвести рисунок, так, как он был в оригинале.

При рисовании компоновщики не играют ни какой роли, равно как и наличие родительского виджета. PictureViewer может быть единственным виджетом (окном верхнего уровня)

Вот этот размер меня интерисует:
Прикрепленное изображение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   определение размеров виджета при использовании QPicture   26.12.2009, 1:00
- - Kagami   Юра, ты меня удивляешь. Есть же функции QWIdget::m...   26.12.2009, 9:27
- - Litkevich Yuriy   Kagami, не понял. Я рисую с координат (0, 0) самог...   26.12.2009, 12:49
- - Kagami   Ты про компоновку забываешь - window -> mainLay...   26.12.2009, 14:00
- - Litkevich Yuriy   Меня не интерисует виджет window. При изменении ра...   26.12.2009, 15:01
- - Kagami   Юр, что бы до конца прояснить ситуацию, при создан...   26.12.2009, 19:26
- - Litkevich Yuriy   Цитата(Kagami @ 26.12.2009, 22:26) они ри...   26.12.2009, 20:03
- - Kagami   Чуть-чуть покопался в исходниках QPicture. Заметил...   26.12.2009, 21:30
- - Litkevich Yuriy   Цитата(Kagami @ 27.12.2009, 0:30) Надо по...   26.12.2009, 23:04
- - Kagami   Кстати, а почему бы тебе не выводить рисунок со см...   26.12.2009, 23:16
- - Litkevich Yuriy   Цитата(Kagami @ 27.12.2009, 2:16) Кстати,...   26.12.2009, 23:20
- - Kagami   У меня вроде нормально. По сравнению с перыми вари...   26.12.2009, 23:49
- - Litkevich Yuriy   Подумать конечно можно, если смещать ровно на отст...   27.12.2009, 1:45


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 8:52