Невозможно использовать виджеты ввода с QGraphicsItemGroup ⇐ C++
-
Anonymous
Невозможно использовать виджеты ввода с QGraphicsItemGroup
Я пытаюсь использовать такие входные данные, как QLineEdit и QSlider, внутри QGraphicsItemGroup.
Я могу показывать их и перетаскивать группу, но не могу с ними взаимодействовать. Это явно проблема с фокусом и событиями.
Как использовать группу, чтобы все объекты перемещались вместе, но фокус переключался на них при нажатии на определенные элементы?
Пример минимального кода:
QSlider* слайдер_ = новый QSlider(Qt::Horizontal); QGraphicsProxyWidget* слайдер_item_ = новый QGraphicsProxyWidget(); слайдер_item_->setWidget(slider_); qreal слайдерX = 0; qreal слайдерY = 0; слайдер_item_->setPos(слайдерX, слайдерY); QGraphicsItemGroup* tile_group_ = новый QGraphicsItemGroup(); tile_group_->setFlags(QGraphicsItemGroup::ItemIsMovable | QGraphicsItemGroup::ItemIsFocusable | QGraphicsItemGroup::ItemIsSelectable); tile_group_->addToGroup(slider_item_); сцена = новый QGraphicsScene (это); сцена->addItem(tile_group_); Я попытался точно определить проблему. Это происходит только тогда, когда элементы определены внутри группы, поэтому мне нужно как-то обрабатывать события вручную. У меня Ubuntu 22.04.
Я пытаюсь использовать такие входные данные, как QLineEdit и QSlider, внутри QGraphicsItemGroup.
Я могу показывать их и перетаскивать группу, но не могу с ними взаимодействовать. Это явно проблема с фокусом и событиями.
Как использовать группу, чтобы все объекты перемещались вместе, но фокус переключался на них при нажатии на определенные элементы?
Пример минимального кода:
QSlider* слайдер_ = новый QSlider(Qt::Horizontal); QGraphicsProxyWidget* слайдер_item_ = новый QGraphicsProxyWidget(); слайдер_item_->setWidget(slider_); qreal слайдерX = 0; qreal слайдерY = 0; слайдер_item_->setPos(слайдерX, слайдерY); QGraphicsItemGroup* tile_group_ = новый QGraphicsItemGroup(); tile_group_->setFlags(QGraphicsItemGroup::ItemIsMovable | QGraphicsItemGroup::ItemIsFocusable | QGraphicsItemGroup::ItemIsSelectable); tile_group_->addToGroup(slider_item_); сцена = новый QGraphicsScene (это); сцена->addItem(tile_group_); Я попытался точно определить проблему. Это происходит только тогда, когда элементы определены внутри группы, поэтому мне нужно как-то обрабатывать события вручную. У меня Ubuntu 22.04.
Мобильная версия