Название: Область видимости QGraphicsItem Отправлено: Garik от Май 24, 2011, 17:39 Всем привет!!!!
интересует такой вопрос!!!!! Создал QGraphicsView, подключил к ниму сцену!!!! теперь рисую например QGraphicsRectItem (залитый черной заливкой) и QGraphicsTextItem(красного цвета, с флагом ItemIsMovable)!!! 1. как сделать что-бы QGraphicsTextItem всегда находился поверх QGraphicsRectItem!!! 2. И можно ли для QGraphicsTextItem задать ограниченую область видимости!!... тоесть например если QGraphicsRectItem имеет размеры (0,0,100,100) то QGraphicsTextItem будет виден только в предалах этой области, а за ее границами нет!!! что-то на примере Бегущей строки, когда строка видна только в определенной области, в моем случаее это в созданом квадрате!!!! Заранее спасибо!!! Название: Re: Область видимости QGraphicsItem Отправлено: alexman от Май 24, 2011, 18:17 1. как сделать что-бы QGraphicsTextItem всегда находился поверх QGraphicsRectItem!!! void QGraphicsItem::setZValue ( qreal z )2. И можно ли для QGraphicsTextItem задать ограниченую область видимости!!... тоесть например если QGraphicsRectItem имеет размеры (0,0,100,100) то QGraphicsTextItem будет виден только в предалах этой области, а за ее границами нет!!! что-то на примере Бегущей строки, когда строка видна только в определенной области, в моем случаее это в созданом квадрате!!!! Попробуй флаг установить QGraphicsItem::ItemClipsToShapeНазвание: Re: Область видимости QGraphicsItem Отправлено: Garik от Май 24, 2011, 18:32 void QGraphicsItem::setZValue ( qreal z ) [/quote] Спасибо сработало!!! [/quote] Попробуй флаг установить QGraphicsItem::ItemClipsToShape [/quote] а с етим еще не дорозобрался???? Как задать ту область в которой АЙТЕМ отображается, а за пределами нет!!!! Название: Re: Область видимости QGraphicsItem Отправлено: alexman от Май 24, 2011, 18:50 QRectF QGraphicsItem::boundingRect () const
А если меняете bounding rect, то вызывайте void QGraphicsItem::prepareGeometryChange () Название: Re: Область видимости QGraphicsItem Отправлено: Garik от Май 25, 2011, 12:33 QRectF QGraphicsItem::boundingRect () const А если меняете bounding rect, то вызывайте void QGraphicsItem::prepareGeometryChange () Не совсем получается то что мне нужно!!!!! или я не правльно понял!!!! Данный метод просто ограничивает область отображения АЙТЕМА!!!! а у меня стоит задача, ограничит область так что-бы я имел возможность в данной область двигать объектом только в этой области!!!! Грубо говоря если представить себе бегущию строку!!!! то у меня должно получится тоже самое, один Айтом это Ректангл (неподвижный), а второй это Айтем это Текст, который может быть намного длинее но область видимости его должна ограничиватся только в пределах Ректангла!!!! Ну и что-бы я мог ним двигать не всей сцене а только в этой области!!!! дальшн планируется просто через таймер менять координаты Текста, что-бы получилась ефект бегущей строки!!!! как-то вот так!!!!! На данный момент еще ничего не вышло((( но думаю рыть где-то в этом направлении!!! Название: Re: Область видимости QGraphicsItem Отправлено: m_ax от Май 25, 2011, 13:13 Сколько восклицаний))
Переопределите метод paint у QGraphicsItem и делайте там всё что хотите. Название: Re: Область видимости QGraphicsItem Отправлено: GreatSnake от Май 25, 2011, 13:17 Если ты так будешь кричать, мы все здесь оглохнем.
Перегружай QGraphicsItem::paint() и уже в нём задавай клиппинг через QPainter::setClipRect(). 2 m_ax: прям мои мысли прочитал :) Название: Re: Область видимости QGraphicsItem Отправлено: m_ax от Май 25, 2011, 15:50 2 m_ax: А то)) прям мои мысли прочитал :) Беру уроки у тех перцев с передачи: битвы экстрасенсов)) Название: Re: Область видимости QGraphicsItem Отправлено: alexman от Май 25, 2011, 15:56 2 m_ax: А то)) прям мои мысли прочитал :) Беру уроки у тех перцев с передачи: битвы экстрасенсов)) |