Название: Как установить флаг видимости для элемента сцены ? Отправлено: AntonUfo от Февраль 14, 2011, 15:44 Всем привет ! Собственно subj ? Если устанавливать через item->setVisible(false); то элемент перестает ловить сигналы...
понял только что вроде как через флаги правильно делать но непонимаю как.... Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: GreatSnake от Февраль 14, 2011, 16:08 QGraphicsItem::setFlag( QGraphicsItem::ItemHasNoContents, !is_visibled );
Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: AntonUfo от Февраль 14, 2011, 16:27 Пытаюсь сделать через такую конструкцию:
Код: QList<QGraphicsItem *> itemss = scene->items(); не компилируется..... Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: GreatSnake от Февраль 14, 2011, 16:39 j.setFlag(QGraphicsItem::ItemVisibleChange); => link->setFlag(QGraphicsItem::ItemVisibleChange);
А что, свою писанину перед тем как на форум выкладывать внимательно посмотреть уже не судьба? Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: AntonUfo от Февраль 14, 2011, 16:46 j.setFlag(QGraphicsItem::ItemVisibleChange); => link->setFlag(QGraphicsItem::ItemVisibleChange); А что, свою писанину перед тем как на форум выкладывать внимательно посмотреть уже не судьба? пробовал и так и так.... если через link->setFlag вот что пишет компилятор: " QGraphicsItem::setFlag: невозможно преобразовать параметр 1 из 'QGraphicsItem::GraphicsItemChange' в 'QGraphicsItem::GraphicsItemFlag' Для преобразования в перечисляемый тип требуется явное приведение (static_cast, приведение в стиле С или приведение в стиле функции) " а по поводу писанины, не хочешь не отвечай, я тебя не заставляю..... Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: GreatSnake от Февраль 14, 2011, 16:55 Хм, а зачем вообще нужен QGraphicsItem::ItemVisibleChange, который используется в QGraphicsItem::itemChange()?
Чем не подходит QGraphicsItem::setFlag( QGraphicsItem::ItemHasNoContents, !is_visibled )? Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: AntonUfo от Февраль 14, 2011, 17:19 Хм, а зачем вообще нужен QGraphicsItem::ItemVisibleChange, который используется в QGraphicsItem::itemChange()? Чем не подходит QGraphicsItem::setFlag( QGraphicsItem::ItemHasNoContents, !is_visibled )? ItemHasNoContents - элемент ничего не отрисовывает (т.е., вызов paint() на элементе не имеет эффекта). Вы должны установить этот флаг на элементах, которые не нужно отрисовывать, чтобы обеспечить избегания Графическим представлением ненужной подготовки к рисованию. Этот флаг был введён в Qt 4.6. А мне нужно нарисованные элементы скрыть и нарисовать скрытые элементы.... мне ItemHasNoContents неподходит.... Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: GreatSnake от Февраль 14, 2011, 17:25 Цитировать Если устанавливать через item->setVisible(false); то элемент перестает ловить сигналы... Ты бы определился, что тебе нужно.Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: AntonUfo от Февраль 14, 2011, 17:37 Цитировать Если устанавливать через item->setVisible(false); то элемент перестает ловить сигналы... Ты бы определился, что тебе нужно.у меня на сцене нарисовано 10 кружочков, мне нужно скрыть пять, а потом три опять вывести на экран..., если делать через item->setVisible(false) то итемы которые скрыты перестают ловить сигналы........ и мне их снова на представление сцены не вывести..... Название: Re: Как установить флаг видимости для элемента сцены ? Отправлено: GreatSnake от Февраль 14, 2011, 17:41 Цитировать у меня на сцене нарисовано 10 кружочков, мне нужно скрыть пять, а потом три опять вывести на экран..., если делать через item->setVisible(true);item->setVisible(false) то итемы которые скрыты перестают ловить сигналы........ и мне их снова на представление сцены не вывести..... |