Russian Qt Forum
Ноябрь 23, 2024, 17:48
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
DragNDrop в Mac OS X
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: DragNDrop в Mac OS X (Прочитано 5405 раз)
CyclicBarrier
Гость
DragNDrop в Mac OS X
«
:
Июнь 11, 2012, 19:18 »
Нужно из приложения дропать элементы в файловую систему, под виндой это работает, сделано путём наследования от QMimeData и переопределения retrieveData(const QString&, QVariant::Type) и сохранения файлов в tmp папку, как сказано по этой ссылке
http://stackoverflow.com/questions/2724252/qt-4-x-how-to-implement-drag-and-drop-onto-the-desktop-or-into-a-folder
Но есть проблема, это работает только под виндой, под mac'ом не работает и проблема судя по этим ссылкам
http://stackoverflow.com/questions/5854546/how-to-implement-a-dragn-drop-from-a-qt-application-to-a-file-system-folder
http://www.qtforum.org/article/34486/how-to-drag-and-drop-promised-files-from-a-mac-qt-app-to-the-mac-os-x-finder.html
в том, что retrieveData(const QString&, QVariant::Type) вызывается сразу, как только начался drag т.е. до финального отпускания кнопки мыши.
Вопрос, кто нибудь сталкивался с проблемой дропа из Qt приложения под Mac OS X, и как эту проблему можно решить?
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: DragNDrop в Mac OS X
«
Ответ #1 :
Июнь 11, 2012, 20:32 »
раз не работает через Qt, придётся лезть в Cocoa (или Carbon, смотря что используется). QApplication::macEventFilter() должен помочь.
Записан
Изучением 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
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DragNDrop в Mac OS X
«
Ответ #2 :
Июнь 11, 2012, 20:58 »
Цитата: kambala от Июнь 11, 2012, 20:32
раз не работает через Qt, придётся лезть в Cocoa (или Carbon, смотря что используется). QApplication::macEventFilter() должен помочь.
На какаве не знаю, а через TrackDrag делал. Ну там не очень просто получается
Записан
CyclicBarrier
Гость
Re: DragNDrop в Mac OS X
«
Ответ #3 :
Июнь 11, 2012, 21:02 »
Цитата: Igors от Июнь 11, 2012, 20:58
На какаве не знаю, а через TrackDrag делал. Ну там не очень просто получается
Выложите пожалуйста пример, как вы это сделали.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: DragNDrop в Mac OS X
«
Ответ #4 :
Июнь 11, 2012, 21:15 »
Цитата: CyclicBarrier от Июнь 11, 2012, 19:18
http://www.qtforum.org/article/34486/how-to-drag-and-drop-promised-files-from-a-mac-qt-app-to-the-mac-os-x-finder.html
я сначала не обратил внимание, но тут же уже написано что надо использовать в Cocoa:
Цитировать
In our current Cocoa application we are using the traditional concept of "Promised Files", which have to be delivered ONLY (!) in the case of a final dropping action in the finder (not on start of the drag):
- (NSArray *)namesOfPromisedFilesDroppedAtDestination (NSURL *)dropDestination
called once from
- [NSView dragPromisedFilesOfTypes:[NSArray arrayWithObject:@""] …
when finally dropping in the finder.
Записан
Изучением 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
CyclicBarrier
Гость
Re: DragNDrop в Mac OS X
«
Ответ #5 :
Июнь 11, 2012, 21:17 »
Цитата: kambala от Июнь 11, 2012, 21:15
я сначала не обратил внимание, но тут же уже написано что надо использовать в Cocoa:
Это понятно, только с Cocoa и Obj-C я не знаком)
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: DragNDrop в Mac OS X
«
Ответ #6 :
Июнь 11, 2012, 22:52 »
тогда остается 2 варианта: собрать Qt под карбон и ждать ответ
Igors
'а, или найти того, кто напишет нужный код на Objective-C/Cocoa.
Записан
Изучением 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
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DragNDrop в Mac OS X
«
Ответ #7 :
Июнь 12, 2012, 00:57 »
Цитата: CyclicBarrier от Июнь 11, 2012, 21:02
Выложите пожалуйста пример, как вы это сделали.
Не смогу помочь, нетранспортабельно - под тысячу строк переплетенных с моими классами. Ну и Carbon - это (поза)вчерашний день, коду больше 10 лет. Прорываться в нативняке лучше с Cacao, но это тоже решение трудоемкое.
Выложите минимальный проект, подумаем. Если Finder разрешает аccept. то AppleEvent прийти должен, может удастся решить в Qt
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...