Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Serg от Ноябрь 18, 2011, 14:02



Название: Переключатель опций на основе нескольких QGraphicsItem
Отправлено: Serg от Ноябрь 18, 2011, 14:02
Добрый день всем.

Я ищу решение такой-то проблемы... Есть несколько QGraphicsItem, размещенных на сцене. Они должны работать как переключатели (Radio buttons) (один из них и только один должен быть всегда активным). Етот активный QGraphicsItem должен быть в списке элементов QGraphicsScene::selectedItems () (просто графического отображения того, что он выбран мало, он обязательно должен быть в списке selectedItems () !!!).

Написал я тестовый код, на котором можно поискать решение (вложенные файлы). LCD показывает, сколько выделенных элементов на сцене (выделенных, которые записаны в список selectedItems())

Перегрузки QGraphicsView и переопределение событий миши для контроля за сценой я делал и это помогает. Но я хочу найти объектноориентированное решение, чтобы GraphicsИтемы могли сами себя контролировать.

Проверял работу события QGraphicsItem::ItemSelectedChange. В документации написано, что нужно вернуть требуемое состояние выделения из функции itemChange(). И хотя, если вернуть тру - элемент визуально останется выделенным, но он всеровно удаляется со списка selectedItems().

Сейчас пытаюсь поискать решение с QGraphicsItem наподобие GroupBox для виджетов...

Кто нибудь сталкивался с этой проблемой? Как это можно реализовать?