![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]()
Сообщение
#1
|
||
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Пытаюсь рисовать на виджете с использованием QPicture.
здесь pic - указатель на QPicture.QPicture я загружаю из файла. На основе QPicture::boundingRect().size(), загруженного рисунка, изменяю размер виджета. Однако рисунок рисовался с отступом от краёв исходного виджета (рисовальщика) по этому получаю такое: Вопрос: Как определить отступ сверху и слева от края виджета, до рисунка. Была мысль спросить у рисовальщика (QPainter'а) минимальную координату, где он побывал, но такого метода я не нашёл. На всякий случай проект прикрепил: ![]() Файлы: painter1.log painter2.log тестовые, для загрузки. |
||
|
|||
![]() |
Kagami |
![]()
Сообщение
#2
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: ![]() ![]() ![]() |
Чуть-чуть покопался в исходниках QPicture. Заметил что boundRect зашивается в файл при сохранении. Надо посмотреть как они его считают, может какая идея и придет.
UPD. Все оказалось гораздо проще. В файле, куда сохранен QPicture, зашит левый верхний угол ограничивающего прямоугольника и его высота и ширина. Как их считать написано в /opt/qtsdk-2009.05/qt/src/gui/image/qpicture.cpp, смотри функцию QPicturePrivate::checkFormat() UPD2. Совсем забыл - ответ на твой первоначальный вопрос: Цитата int top = pic->boundingRect().y();
int left = pic->boundingRect().x(); Сообщение отредактировал Kagami - 26.12.2009, 22:21 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.8.2025, 19:56 |