Serj Demchenko
Feb. 18, 2020, 6:19 p.m.

Перетаскивать item из ListView

c++, QML

Привет , кто -нибудь подскажет как реализовать перетаскивание обьектов из листвью , и как это вообще делается ?
Суть в том ,чтобы при объекта из листвью модели ,знать что за обьект.
Вот примерно код

  1. #include <QApplication>
  2. #include <QQmlApplicationEngine>
  3. #include <QtQuick>
  4. #include <QIcon>
  5. #include <QtDebug>
  6.  
  7. #include "Utility/XmlManager.h"
  8. #include "ItemClasses/DataObject.h"
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12. QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
  13. QApplication app(argc, argv);
  14. QIcon appIcon(":/IconSource/title.svg");
  15. app.setWindowIcon(appIcon);
  16.  
  17. QQmlApplicationEngine engine;
  18.  
  19. /* cpp listModel */
  20. QList<QObject*> dataList;
  21. dataList.append(new DataObject("Item 1", "red"));
  22. dataList.append(new DataObject("Item 2", "green"));
  23. dataList.append(new DataObject("Item 3", "blue"));
  24. dataList.append(new DataObject("Item 4", "yellow"));
  25.  
  26. engine.rootContext()->setContextProperty("myModel", QVariant::fromValue(dataList));
  27. engine.load(QUrl(QLatin1String("qrc:/QmlPages/main.qml")));
  28.  
  29. qDebug() << "counts delegate:" << dataList.count();
  30. return app.exec();
  31.  
  32. }
  1. Drawer {
  2. id: expanderComponent
  3. width: window.width/3
  4. height: window.height
  5.  
  6. Button{
  7. / ...
  8. }
  9. /*model */
  10. ListView {
  11. anchors {
  12. left: parent.left
  13. right: parent.right
  14. top: closeButton.bottom
  15. bottom: parent.bottom
  16. }
  17. contentHeight: height
  18. model: myModel
  19. delegate: Rectangle{
  20. height: 25
  21. width: parent.width
  22. color: model.modelData.color
  23. Text { text: model.modelData.name }
  24. }
  25. Component.onCompleted: console.log("qml count: " + myModel.length)
  26. }
  27. }
2

Do you like it? Share on social networks!

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • AK
    April 1, 2025, 11:41 a.m.
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup