![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
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 раз(а) Репутация: ![]() ![]() ![]() |
Юра, ты меня удивляешь. Есть же функции QWIdget::map*().
Так как у тебя рисовальщик лежит в компоновке и он становится его родительским виджетом, то самый простой способ - вызвать у рисовальщика mapToParent(QPoint(0,0)) - не подходит. Вариантов есть два. Либо хранить в рисовальщике указатель на объект Window и использовать mapTo(window, QPoint(0,0)), либо перебирать родительские виджеты в цикле, пока не дойдем до последнего: а затем mapTo(topParent, QPoint(0,0)).
Сообщение отредактировал Kagami - 26.12.2009, 9:33 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.7.2025, 14:38 |