Название: QSystemTray drop файл Отправлено: ecspertiza от Март 14, 2012, 10:40 Возник такой вопрос, можно ли реализовать перенос файла на иконку в системном трее ? Что то в доке не вижу что можно такое сделать. Может есть какие хаки ?
Название: Re: QSystemTray drop файл Отправлено: Bepec от Март 14, 2012, 10:43 Ну у меня конечно родилась гениальная мысль - при наведении мышкой создавать виджет принимающий drop, как раз на месте трей иконки. Прозрачный/полупрозрачный.
Название: Re: QSystemTray drop файл Отправлено: Пантер от Март 14, 2012, 10:45 Скорее всего, нет.
Название: Re: QSystemTray drop файл Отправлено: Пантер от Март 14, 2012, 10:45 Ну у меня конечно родилась гениальная мысль - при наведении мышкой создавать виджет принимающий drop, как раз на месте трей иконки. Прозрачный/полупрозрачный. Как ты отследишь наведение?Название: Re: QSystemTray drop файл Отправлено: Bepec от Март 14, 2012, 10:51 Не заморачиваясь реализацией отвечаю:
1) просто держать там виджет всё время. (он сам и отловит drop а остальное будет пускать дальше) 2) не проверял, но вроде при наведении на иконку в трее идёт сигнал активатед с unknown резоном. 3) поиздеваться и переопределить toolTip и добавить в возврат строки создание виджета на N+1 секунд. 4) отслеживать мышкины передвижения. При захождению в область трея вызывать. (вот тут интересно, будет ли это отображаться на потреблении ресурсов) 5) написать свой евент фильтр/поставить - отследить наведение. 6) написать свой systemTraiIcon. Пока что все ) Название: Re: QSystemTray drop файл Отправлено: ecspertiza от Март 14, 2012, 10:58 Конечно возможно мое решение поспешно, но думается работать будет через задницу. Опять же интересно как создать виджет в трее ??? или его просто создавать на десктопе ? но тогда где его там создавать ? вроде же хрен отловишь позицию иконки в трее + в актив приходят только клики различные.
Название: Re: QSystemTray drop файл Отправлено: _OLEGator_ от Март 14, 2012, 11:03 Грязные хаки. Слишком геморно будет отслеживать позицию иконки в трее.
Копался в исходниках QSystemTrayIcon? как там реализован перехват кликов? Название: Re: QSystemTray drop файл Отправлено: ecspertiza от Март 14, 2012, 11:41 ну под виндой ловит виндовые события NIN_KEYSELECT, WM_LBUTTONDBLCLK, WM_CONTEXTMENU и прочие и посылает activated под остальными ОС не смотрел
Название: Re: QSystemTray drop файл Отправлено: Bepec от Март 14, 2012, 12:03 Я поел и полон сил :D счас развею ваши страхи и сомнения!!! (или добавлю новых :D)
Тырить движения мышки и проверять вхождение в иконку (QSystemTrayIcon->geometry()->contains(QCursor::pos())) - работает. Ставить фильтр - непоняяятно. Не работает. update: попробовал и остановился на тырении мышки и вхождении в иконку. Получается довольно красивое и элегантное решение. Название: Re: QSystemTray drop файл Отправлено: ernie от Март 15, 2012, 15:45 ВЕРЕС, а движения мышки как тырить,накладывать прозрачный виджет на весь экран или по таймеру?и что с производительностью в таком случае?:)
Название: Re: QSystemTray drop файл Отправлено: Bepec от Март 15, 2012, 15:57 Я Верес :) большая буква ток 1 и то по настроению :D
Движение мышки тырится ф-ций QCursor::pos(). Виджет создаётся и накладывается только в момент нахождения указателя над иконкой. Таймер не грузит систему :) В целом вообще незаметно ;) |