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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение графических элементов  (Прочитано 4217 раз)
Rakot
Гость
« : Апрель 24, 2008, 12:40 »

Qt 4.3.4

Пытаюсь создать сначала 100 объектов типа QGraphicsEllipseItem, затем на них 100 объектов типа QGraphicsTextItem. Но почему то часть текста показывается, а часть нет!

Как сделать так чтоб текст внутри эллипсов отображался на всех эллипсах и был отцентрирован в них?

З.Ы. в Ассистенте чо та есть про перекрытие элементов, но я как ни пытался поставить разные флаги все равн не раьотает В замешательстве

Записан
Rakot
Гость
« Ответ #1 : Апрель 25, 2008, 18:48 »

Все разобрался! Веселый

Для того, чтоб текст отображался над было воспользоваться методом setZValue().
А для центровки внутри эллипса, сначала, установил ширину текста, равную ширине стороны эллипса, а ,затем, уже выводил текст в формате HTML(используя тег<CENTER>).


Теперь в другом проблема! Как очистить объект QGraphicsScene от этих 100 эллипсов? А то птом на этом же QGraphicsView рисую 50 эллипсов, а у мну по прежнему их 100 и с текстом внутри полн белеберда.
« Последнее редактирование: Апрель 25, 2008, 20:20 от Rakot » Записан
Rakot
Гость
« Ответ #2 : Апрель 26, 2008, 14:40 »

И с этим разобрался)) Крутой

Надеюсь больше проблем с графикой не будет! Смеющийся

Проблему решил так:
Код:
QList<QGraphicsItem *> i = scene->items();
QList<QGraphicsItem *>::iterator j = i.begin();
for(;j!=i.end();++j)
{
    if(*j) delete *j;
}
« Последнее редактирование: Апрель 26, 2008, 14:42 от Rakot » Записан
WW
Гость
« Ответ #3 : Апрель 26, 2008, 18:47 »

Честно говоря,  с проблеммой не разбирался, но рад, что все решил сам.
А ассистент - великая вещь! Да и поиск по форуму помогает.
Записан
DS_tm
Гость
« Ответ #4 : Май 13, 2008, 15:38 »

И с этим разобрался)) Крутой

Надеюсь больше проблем с графикой не будет! Смеющийся

Проблему решил так:
Код:
QList<QGraphicsItem *> i = scene->items();
QList<QGraphicsItem *>::iterator j = i.begin();
for(;j!=i.end();++j)
{
    if(*j) delete *j;
}

хм, а если так попробывать:

Код:
foreach(QGraphicsItem *item, scene->items()) {
    scene->removeItem(item);
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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