My TreeView имеет различную папку с детьми. у каждого ребенка есть значок и текстовое имя. пользователь может выбрать один или несколько элементов и перетащить их в область QMDI. как изображение для моей капли darg у меня есть местное изображение drag-> setPixmap (QPixmap (myPixImage)). Мне нужно: как я выделяю выбранный элемент со значком и текстом в качестве myPixImage динамически.Qt Drag and Drop QTreeView
ответ
Легко установить pixmap, когда ваш собственный код создает объект QDrag, однако с помощью QXxxViews (а не только QTreeView) вы управляете только QMimeData (при переопределении QAbstractItemModel :: mimeData()).
Поэтому, если вам это действительно нужно, единственный способ, которым я теперь являюсь подкласс QTreeView, переопределять (ну ... reimplenting) mouseMoveEvent() и тому подобное. Если вы это сделаете, вы можете получить выбранные элементы при создании QDrag через, например. selectionModel() -> SelectedItems().
Прежде всего: нет простого способа сделать это. В основном потому, что QDrag::exec
запускается, когда вы (как разработчик) допускаете начало перетаскивания (пример here), и он не возвращается до завершения перетаскивания.
Вы хотите изменить QDrag
объект пока перетаскивание.
Ваш лучший вариант здесь:
- После создания
Drag
объекта и перед тем работаетQDrag::exec
сохранить объект в некотором бассейне, которые могут быть доступны в любом месте в коде. Возможно, что-то вродеstatic map<QDrag *> pool
- Настройте периодическое событие
QTimer
, которое постоянно обновляет объектQDrag
, который можно получить из пула. Do не попробуйте использоватьQthread
, так как вы в конце концов столкнетесь с некоторой ошибкой «QObject не может быть перенесена из/в поток». - Когда сопротивление лет закончились (как пользователь), очистить объект из пула
ли ум, что вы будете иметь визуально настройте QTimer
повторяющихся событий соответственно.
- 1. Qt :: Drag And Drop Image
- 2. Flex Drag and Drop
- 3. drag and drop picturebox
- 4. Python drag and drop
- 5. drag and drop uiautomation
- 6. TreeTableView drag and drop
- 7. Drag and Drop VideoView
- 8. Java Drag and drop
- 9. Tkinter drag and drop
- 10. ListView drag and drop
- 11. RadPanelBar Drag And Drop
- 12. Dojo Drag and Drop
- 13. jquery drag and drop
- 14. ItemsControl Drag and Drop
- 15. Переводчик Drag And Drop
- 16. Drag and Drop DataGrid
- 17. Flex Drag and Drop
- 18. RemoteApp Drag-and-Drop
- 19. jquery drag and drop
- 20. drag and drop jquery
- 21. Multiselect Drag and Drop
- 22. Вкладки Drag And Drop
- 23. angular2 drag and drop
- 24. JQuery drag and drop
- 25. Drag And Drop LibGDX
- 26. Drag and drop gwt
- 27. Drag and Drop Imageview
- 28. Drag and drop - java.lang.ArrayIndexOutOfBoundsException
- 29. pyside qtreewidget constrain drag and drop
- 30. Hide Drag Preview - HTML Drag and Drop