Russian Qt Forum
Ноябрь 23, 2024, 00:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSystemTray drop файл  (Прочитано 6624 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Март 14, 2012, 10:40 »

Возник такой вопрос, можно ли реализовать перенос файла на иконку в системном трее ? Что то в доке не вижу что можно такое сделать. Может есть какие хаки ?
Записан
Bepec
Гость
« Ответ #1 : Март 14, 2012, 10:43 »

Ну у меня конечно родилась гениальная мысль - при наведении мышкой создавать виджет принимающий drop, как раз на месте трей иконки. Прозрачный/полупрозрачный.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Март 14, 2012, 10:45 »

Скорее всего, нет.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Март 14, 2012, 10:45 »

Ну у меня конечно родилась гениальная мысль - при наведении мышкой создавать виджет принимающий drop, как раз на месте трей иконки. Прозрачный/полупрозрачный.
Как ты отследишь наведение?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #4 : Март 14, 2012, 10:51 »

Не заморачиваясь реализацией отвечаю:
1) просто держать там виджет всё время. (он сам и отловит drop а остальное будет пускать дальше)
2) не проверял, но вроде при наведении на иконку в трее идёт сигнал активатед с unknown резоном.
3) поиздеваться и переопределить toolTip и добавить в возврат строки создание виджета на N+1 секунд.
4) отслеживать мышкины передвижения. При захождению в область трея вызывать. (вот тут интересно, будет ли это отображаться на потреблении ресурсов)
5) написать свой евент фильтр/поставить - отследить наведение.
6) написать свой systemTraiIcon.

Пока что все )
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Март 14, 2012, 10:58 »

Конечно возможно мое решение поспешно, но думается работать будет через задницу. Опять же интересно как создать виджет в трее Непонимающий или его просто создавать на десктопе ? но тогда где его там создавать ? вроде же хрен отловишь позицию иконки в трее + в актив приходят только клики различные.
Записан
_OLEGator_
Гость
« Ответ #6 : Март 14, 2012, 11:03 »

Грязные хаки. Слишком геморно будет отслеживать позицию иконки в трее.
Копался в исходниках QSystemTrayIcon? как там реализован перехват кликов?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #7 : Март 14, 2012, 11:41 »

ну под виндой ловит виндовые события NIN_KEYSELECT, WM_LBUTTONDBLCLK, WM_CONTEXTMENU и прочие и посылает activated под остальными ОС не смотрел
Записан
Bepec
Гость
« Ответ #8 : Март 14, 2012, 12:03 »

Я поел и полон сил Веселый счас развею ваши страхи и сомнения!!! (или добавлю новых Веселый)

Тырить движения мышки и проверять вхождение в иконку (QSystemTrayIcon->geometry()->contains(QCursor::pos())) - работает.
Ставить фильтр - непоняяятно. Не работает.

update: попробовал и остановился на тырении мышки и вхождении в иконку. Получается довольно красивое и элегантное решение.
« Последнее редактирование: Март 14, 2012, 13:08 от Bepec » Записан
ernie
Гость
« Ответ #9 : Март 15, 2012, 15:45 »

ВЕРЕС, а движения мышки как тырить,накладывать прозрачный виджет на весь экран или по таймеру?и что с производительностью в таком случае?Улыбающийся
Записан
Bepec
Гость
« Ответ #10 : Март 15, 2012, 15:57 »

Я Верес Улыбающийся большая буква ток 1 и то по настроению Веселый

Движение мышки тырится ф-ций QCursor::pos().
Виджет создаётся и накладывается только в момент нахождения указателя над иконкой.

Таймер не грузит систему Улыбающийся В целом вообще незаметно Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.148 секунд. Запросов: 23.