Я новичок в Qt. По умолчанию для множественного выбора qgraphicsitem нужно нажать кнопку ctrl. Но можно ли отключить эту функцию? Или перезагрузите эту функцию?Как отключить множественный выбор qgraphicsitem?
1
A
ответ
2
Это контролируется флажками предметов. Чтобы отключить возможность выбора для конкретного пункта, сделать
item->setFlag(QGraphicsItem::ItemIsSelectable, false);
Если вы хотите, чтобы укомплектовать отключить элементы Выбор для QGraphicsScene
независимо от флагов пункт я бы рекомендовал подключить QGraphicsScene::selectionChanged
к QGraphicsScene::clearSelection
.
Если вы хотите отключить множественный выбор, я предлагаю следующее:
- Подкласс QGraphicsScene и держать указатель
lastSelection
к QGraphicsItem вокруг - Создать слот, подключенный к
QGraphicsScene::selectionChanged
- Check
selectedItems
:- пусто: ничего не делать (= ничего не выбрано)
- cont AINS только
lastSelection
: ничего не делать (= выбор не реально изменить) - содержит один элемент, а не
lastSelection
: установитьlastSelection
к этому элементу (= один элемент, выбранный в первый раз) - содержит два элемента: нужно be
lastSelection
. Удалите это из выделения (lastSelection->setSelected(false);
), установитеlastSelection
в оставшийся пункт. (= Другой элемент был выбран, переместить выделение к нему)
Вам может понадобиться блокировать сигналы во время изменения выбора внутри паза.
1
Простой способ отключить множественный выбор:
- Создайте свой собственный класс Dirived от
QGraphicsItem
. перегрузки защищаемого
mousePressEvent
функции и отключитьControlModifier
:protected: void YourOwnQGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE { if(mouseEvent->modifiers() & Qt::ControlModifier) { mouseEvent->ignore(); } else { QGraphicsItem::mousePressEvent(mouseEvent); //Do what you want... } }
Смежные вопросы
- 1. QGraphicsItem выбор
- 2. Отключить множественный выбор в JSTree не работает
- 3. Множественный выбор отключить в DataGrid в WPF
- 4. Как создать множественный выбор
- 5. Множественный выбор
- 6. Множественный выбор в DataGridView
- 7. WPF XAML: как отключить множественный выбор в DataGrid?
- 8. Как включить множественный выбор узлов?
- 9. Как выделить множественный выбор? Например
- 10. Как работают итераторы? (Множественный выбор)
- 11. Как получить множественный выбор JS
- 12. Navbar множественный выбор
- 13. Множественный выбор со страниц
- 14. структуры C++ множественный выбор
- 15. Множественный выбор в VIM
- 16. Множественный выбор CheckBoxList
- 17. QListWidget и множественный выбор
- 18. Множественный выбор с GtkCombo
- 19. Множественный выбор в C#
- 20. Множественный выбор в администрации
- 21. множественный выбор для elasticsearch
- 22. Множественный выбор ячейки ячейки
- 23. Вычислить множественный выбор выпадающего
- 24. C# Caliburn.Micro Множественный выбор
- 25. VueJS множественный выбор
- 26. Множественный выбор массива.
- 27. MySQL множественный выбор запроса
- 28. iOS множественный выбор изображения
- 29. Bootstrap множественный выбор
- 30. Множественный выбор в улье
Привет, но я все еще хочу, чтобы сохранить нормальную способность выбора, я только хочу, чтобы отключить множественный выбор ... – Nyaruko
увидеть мой отредактированный ответ , – dom0
Спасибо за ваш ответ. – Nyaruko