Russian Qt Forum
Март 29, 2024, 04:29
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
подскажите пожалуйста как достать object name и текст объектов в dropEvent?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: подскажите пожалуйста как достать object name и текст объектов в dropEvent? (Прочитано 7833 раз)
megido
Гость
подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
:
Декабрь 30, 2016, 14:08 »
Код:
void DragListWidget::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasUrls()) {
foreach (QUrl url, event->mimeData()->urls()) {
qDebug() << url;
}
} // пусто
QString name = event->mimeData()->text();
qDebug() << name; // выводит ""
QListWidget::dropEvent(event);
}
используется мультивыбор элементов
«
Последнее редактирование: Декабрь 30, 2016, 14:40 от megido
»
Записан
Day
Частый гость
Offline
Сообщений: 290
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #1 :
Декабрь 30, 2016, 14:41 »
Просто.
objectName();
Или я не понял вопроса. Какого именно объекта? Класс должен быть наследником QObject. Иначе у него никаких objectName нет
Записан
megido
Гость
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #2 :
Декабрь 30, 2016, 15:02 »
Цитата: Day от Декабрь 30, 2016, 14:41
Просто.
objectName();
Или я не понял вопроса. Какого именно объекта? Класс должен быть наследником QObject. Иначе у него никаких objectName нет
QObject *sourceObject=qobject_cast<QObject *>( event->source() );
qDebug() << sourceObject->objectName(); это выводит название объекта ИЗ какого перетащили элемент.
а мне нужно название объекта в какой перетащили.
Записан
Day
Частый гость
Offline
Сообщений: 290
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #3 :
Декабрь 30, 2016, 15:14 »
Цитата: megido от Декабрь 30, 2016, 15:02
а мне нужно название объекта в какой перетащили.
Дык, а вы что не знаете объекта, в который перетаскиваете? не в сам ли объкт класса DragListWidget ? Тогда
Код:
this->objectName();
или просто
objectName();
Записан
megido
Гость
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #4 :
Декабрь 30, 2016, 15:17 »
Цитата: Day от Декабрь 30, 2016, 15:14
Цитата: megido от Декабрь 30, 2016, 15:02
а мне нужно название объекта в какой перетащили.
Дык, а вы что не знаете объекта, в который перетаскиваете? не в сам ли объкт класса DragListWidget ? Тогда
Код:
this->objectName();
или просто
objectName();
вот блин. а я тут горожу велосипед
а как получить текст дропнутых элементов?
Записан
Day
Частый гость
Offline
Сообщений: 290
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #5 :
Декабрь 30, 2016, 15:29 »
Я думаю, столь же просто. Стандартными методами. Ну, конечно, с анализом того, что вы дропаете и есть ли там текст. Деталей подсказать не могу, так как сам этим не занимался.
Но соображения такие. Объект (дропнутый) ведь вам доступен? Кастируйте его к нужному типу. И извлекайте то, что вам надо. Имхо, все в пределах документации без хитростей.
Записан
megido
Гость
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #6 :
Декабрь 30, 2016, 15:34 »
Цитата: Day от Декабрь 30, 2016, 15:29
Я думаю, столь же просто. Стандартными методами. Ну, конечно, с анализом того, что вы дропаете и есть ли там текст. Деталей подсказать не могу, так как сам этим не занимался.
Но соображения такие. Объект (дропнутый) ведь вам доступен? Кастируйте его к нужному типу. И извлекайте то, что вам надо. Имхо, все в пределах документации без хитростей.
я могу кастануть его. но мне не нужно вытащить все элементы виджета. мне нужно только те что были перенесены.
Записан
Bepec
Гость
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #7 :
Декабрь 30, 2016, 15:51 »
Все данные о том, ЧТО переносится, КАК переносится, КУДА переносится находятся в евенте... Просто пройдитесь по методам и всё у вас получится.
Записан
megido
Гость
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #8 :
Декабрь 30, 2016, 16:11 »
разобрался
это кошмар
Код:
QByteArray text = event->mimeData()->data("application/x-qabstractitemmodeldatalist");
QDataStream stream(&text, QIODevice::ReadOnly);
while (!stream.atEnd())
{
int row, col;
QMap<int, QVariant> roleDataMap;
stream >> row >> col >> roleDataMap;
emit UpdateSignal(roleDataMap.first().toString(),bool(active),group_id);
}
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #9 :
Декабрь 30, 2016, 16:41 »
чтобы не было кошмара, можно отказаться от widget и использовать view+model, а в модели написать свое заполнение данных драга
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Day
Частый гость
Offline
Сообщений: 290
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #10 :
Декабрь 30, 2016, 23:57 »
Цитировать
это кошмар
Видимо, кошмарно спроектирован весь проект. Плюс кошмарное понимание (кошмарное непонимание) совершенно элементарных вещей.
Я вам могу посоветовать на некоторое время перестать "творить", а просто почитать документацию.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #11 :
Декабрь 31, 2016, 06:43 »
Цитата: kambala от Декабрь 30, 2016, 16:41
чтобы не было кошмара, можно отказаться от widget и использовать view+model, а в модели написать свое заполнение данных драга
Конечно это (намного) проще, но теряется возможность переноса данных между разными приложениями. Насколько она нужна - другой вопрос, но идеология DnD это предполагает
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: подскажите пожалуйста как достать object name и текст объектов в dropEvent?
«
Ответ #12 :
Декабрь 31, 2016, 18:01 »
Цитата: Igors от Декабрь 31, 2016, 06:43
Цитата: kambala от Декабрь 30, 2016, 16:41
чтобы не было кошмара, можно отказаться от widget и использовать view+model, а в модели написать свое заполнение данных драга
Конечно это (намного) проще, но теряется возможность переноса данных между разными приложениями. Насколько она нужна - другой вопрос, но идеология DnD это предполагает
не совсем понимаю в чем проблема. речь о других Qt приложениях, использующих *widget?
если корректно заполнить mimeData, другие приложения смогут спокойно читать данные.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...