Russian Qt Forum
Ноябрь 02, 2024, 02:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Область видимости QGraphicsItem  (Прочитано 5500 раз)
Garik
Гость
« : Май 24, 2011, 17:39 »

Всем привет!!!!
интересует такой вопрос!!!!!
Создал QGraphicsView, подключил к ниму сцену!!!!
теперь рисую например  QGraphicsRectItem (залитый черной заливкой) и QGraphicsTextItem(красного цвета, с флагом ItemIsMovable)!!!

1. как сделать что-бы QGraphicsTextItem  всегда находился поверх  QGraphicsRectItem!!!
2. И можно ли для QGraphicsTextItem задать  ограниченую область видимости!!... тоесть например если  QGraphicsRectItem имеет размеры (0,0,100,100) то QGraphicsTextItem будет виден только в предалах этой области, а за ее границами нет!!! что-то на примере Бегущей строки, когда строка видна только в определенной области, в моем случаее это в созданом квадрате!!!!

Заранее спасибо!!!
Записан
alexman
Гость
« Ответ #1 : Май 24, 2011, 18:17 »

1. как сделать что-бы QGraphicsTextItem  всегда находился поверх  QGraphicsRectItem!!!
void QGraphicsItem::setZValue ( qreal z )

2. И можно ли для QGraphicsTextItem задать  ограниченую область видимости!!... тоесть например если  QGraphicsRectItem имеет размеры (0,0,100,100) то QGraphicsTextItem будет виден только в предалах этой области, а за ее границами нет!!! что-то на примере Бегущей строки, когда строка видна только в определенной области, в моем случаее это в созданом квадрате!!!!
Попробуй флаг установить QGraphicsItem::ItemClipsToShape
Записан
Garik
Гость
« Ответ #2 : Май 24, 2011, 18:32 »


void QGraphicsItem::setZValue ( qreal z )
[/quote]
Спасибо сработало!!!

[/quote]
Попробуй флаг установить QGraphicsItem::ItemClipsToShape
[/quote]

а с етим еще не дорозобрался?Непонимающий
Как задать ту область в которой АЙТЕМ отображается, а за пределами нет!!!!
Записан
alexman
Гость
« Ответ #3 : Май 24, 2011, 18:50 »

QRectF QGraphicsItem::boundingRect () const
А если меняете bounding rect, то вызывайте void QGraphicsItem::prepareGeometryChange ()
Записан
Garik
Гость
« Ответ #4 : Май 25, 2011, 12:33 »

QRectF QGraphicsItem::boundingRect () const
А если меняете bounding rect, то вызывайте void QGraphicsItem::prepareGeometryChange ()

Не совсем получается то что мне нужно!!!!! или я не правльно понял!!!!
Данный метод просто ограничивает область отображения АЙТЕМА!!!!

а у меня стоит задача, ограничит область так что-бы я имел возможность в данной область двигать объектом только в этой области!!!!

Грубо говоря если представить себе бегущию строку!!!! то у меня должно получится тоже самое, один Айтом это Ректангл (неподвижный), а второй это Айтем это Текст,  который  может быть намного длинее но область видимости его должна ограничиватся только в пределах Ректангла!!!! Ну и что-бы я мог ним двигать не всей сцене а только в этой области!!!!

дальшн планируется просто через таймер менять координаты Текста, что-бы получилась ефект бегущей строки!!!! как-то вот так!!!!!
На данный момент еще ничего не вышло((( но думаю рыть где-то в этом направлении!!!
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #5 : Май 25, 2011, 13:13 »

Сколько восклицаний))

Переопределите метод paint у QGraphicsItem и делайте там всё что хотите.
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Май 25, 2011, 13:17 »

Если ты так будешь кричать, мы все здесь оглохнем.

Перегружай QGraphicsItem::paint() и уже в нём задавай клиппинг через QPainter::setClipRect().

2 m_ax:
прям мои мысли прочитал Улыбающийся
Записан

Qt 5.11/4.8.7 (X11/Win)
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #7 : Май 25, 2011, 15:50 »

2 m_ax:
прям мои мысли прочитал Улыбающийся
А то))
Беру уроки у тех перцев с передачи: битвы экстрасенсов))
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
alexman
Гость
« Ответ #8 : Май 25, 2011, 15:56 »

2 m_ax:
прям мои мысли прочитал Улыбающийся
А то))
Беру уроки у тех перцев с передачи: битвы экстрасенсов))
А я думал кто же эту передачу смотрит Шокированный Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 22.