Название: Система координат в QGraphicsScene[РЕШЕНО] Отправлено: Zeka13 от Апрель 15, 2012, 00:10 Читал, читал, теорию понял, в практику так и не нашёл
Хочу в левом верхнем углу сцены нарисовать картинку квадратную, помогите пожалуйста... Код
заранее спасибо Название: Re: Система координат в QGraphicsScene Отправлено: iroln от Апрель 15, 2012, 12:36 А размер сцены то изначально какой и где начало координат сцены? Если размер 0x0, то сцена будет расширяться динамически при таскании объектов по сцене. Если размер и начало координат заданы, например, setSceneRect(0, 0, 500, 500), то, чтобы вашу картинку поставить в левый верхний угол, надо задать позицию айтема в 0,0.
Название: Re: Система координат в QGraphicsScene Отправлено: Zeka13 от Апрель 15, 2012, 13:38 спасибо за ответ, но что-то не совсем получается всё равно
в форме дизайнера выставил для окна с Graphics view(скомпонован по сетке) выставил размеры 500x500 сейчас код выглядит так Код
элемент в 500,500 совсем уезжает, а в 0,0 тоже немного съезжает, вот скрин (http://storage4.static.itmages.ru/i/12/0415/s_1334486290_6340082_10b083fa68.png) (http://itmages.ru/image/view/487051/10b083fa) Название: Re: Система координат в QGraphicsScene Отправлено: iroln от Апрель 15, 2012, 14:18 Вот минимальный пример на Python:
Код
Результат работы в приложенной картинке. Красная рамка - это границы сцены, две нарисованные кнопки - это два пиксмэп-айтема, одни с позицией 0,0, второй с позицией 500,500. Вся белая область, по сути всё окно - это QGraphicsView. Ну, думаю, теперь будет понятнее, как оно работает. Название: Re: Система координат в QGraphicsScene Отправлено: Zeka13 от Апрель 15, 2012, 14:22 я не могу из вашего примера понять, как мне изменить свой пример
python я не знаю Название: Re: Система координат в QGraphicsScene Отправлено: iroln от Апрель 15, 2012, 14:28 Python знать не обязательно, API в PyQt такое же как в С++.
У вас скорее всего просто непонимание, как работает механизм графического представления. Со сценой у вас всё в порядке, элементы находятся там где нужно, но графический вид может отображать часть сцены и вообще смотреть в любую её точку, поэтому ваша айтем-картинка не находится в левом верхнем углу окна, но она по прежнему находится в верхнем левом углу сцены. То есть вид может изменять размеры, но сцена при этом не меняет своё положение, она зафиксирована в том положении, которые вы ей задали. Название: Re: Система координат в QGraphicsScene Отправлено: Zeka13 от Апрель 15, 2012, 14:32 я сделал минимальный проект, вам не трудно внести в него изменения, а то так не очень понятно?
Название: Re: Система координат в QGraphicsScene Отправлено: iroln от Апрель 15, 2012, 14:43 Понятно, кажется, что у вас за проблема. Картинки же здоровенные. Вокруг вашего "минуса" огромная белая "рамка". Обрезать картинку не пробовали? :)
Название: Re: Система координат в QGraphicsScene Отправлено: Zeka13 от Апрель 15, 2012, 14:46 спасибо, сейчас попробую
Название: Re: Система координат в QGraphicsScene Отправлено: iroln от Апрель 15, 2012, 14:50 Вот, поправил. Посмотрите.
Название: Re: Система координат в QGraphicsScene Отправлено: Zeka13 от Апрель 15, 2012, 15:04 спасибо огромное, но остаётся один вопрос
как сделать область(красный квадрат) на весь GraphicsView ? Тобишь я разворачиваю окно на весь экран, а минус и плюс раскидываются в левый верхний и правый нижний иглы развёрнутого окна? Название: Re: Система координат в QGraphicsScene Отправлено: iroln от Апрель 15, 2012, 15:55 Цитировать Тобишь я разворачиваю окно на весь экран, а минус и плюс раскидываются в левый верхний и правый нижний иглы развёрнутого окна? Ну по всей видимости при ресайзе окна пересчитывать размер сцены и позицию ваших картинок.Как-то так, примерно. Посмотрите. Но можно придумать и другое решение. Название: Re: Система координат в QGraphicsScene Отправлено: Zeka13 от Апрель 15, 2012, 16:05 спасибо огромное ещё раз за потраченное на меня время, даже код за меня написали, сейчас буду разбираться!
Ваша реализация для меня полностью подходит! Название: Re: Система координат в QGraphicsScene[РЕШЕНО] Отправлено: iroln от Апрель 15, 2012, 16:13 Да не за что. Просто вам, может быть было бы проще вообще без GraphicsScene обойтись, или в дальнейшем предполагается, что туда могут добавляться новые объекты с какими-то специфическими свойствами, поведением и т.д., а также интерактивное управление ими?
Название: Re: Система координат в QGraphicsScene[РЕШЕНО] Отправлено: Zeka13 от Апрель 15, 2012, 18:02 не так сложно, но элементов будет много и они будут менять своё местоположение, так что QGraphicsScene для моей задачи оптимальное решение
|