Russian Qt Forum
Ноябрь 23, 2024, 00:06
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QSystemTray drop файл
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QSystemTray drop файл (Прочитано 6616 раз)
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
QSystemTray drop файл
«
:
Март 14, 2012, 10:40 »
Возник такой вопрос, можно ли реализовать перенос файла на иконку в системном трее ? Что то в доке не вижу что можно такое сделать. Может есть какие хаки ?
Записан
Bepec
Гость
Re: QSystemTray drop файл
«
Ответ #1 :
Март 14, 2012, 10:43 »
Ну у меня конечно родилась гениальная мысль - при наведении мышкой создавать виджет принимающий drop, как раз на месте трей иконки. Прозрачный/полупрозрачный.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: QSystemTray drop файл
«
Ответ #2 :
Март 14, 2012, 10:45 »
Скорее всего, нет.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: QSystemTray drop файл
«
Ответ #3 :
Март 14, 2012, 10:45 »
Цитата: Bepec от Март 14, 2012, 10:43
Ну у меня конечно родилась гениальная мысль - при наведении мышкой создавать виджет принимающий drop, как раз на месте трей иконки. Прозрачный/полупрозрачный.
Как ты отследишь наведение?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
Re: QSystemTray drop файл
«
Ответ #4 :
Март 14, 2012, 10:51 »
Не заморачиваясь реализацией отвечаю:
1) просто держать там виджет всё время. (он сам и отловит drop а остальное будет пускать дальше)
2) не проверял, но вроде при наведении на иконку в трее идёт сигнал активатед с unknown резоном.
3) поиздеваться и переопределить toolTip и добавить в возврат строки создание виджета на N+1 секунд.
4) отслеживать мышкины передвижения. При захождению в область трея вызывать. (вот тут интересно, будет ли это отображаться на потреблении ресурсов)
5) написать свой евент фильтр/поставить - отследить наведение.
6) написать свой systemTraiIcon.
Пока что все )
Записан
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: QSystemTray drop файл
«
Ответ #5 :
Март 14, 2012, 10:58 »
Конечно возможно мое решение поспешно, но думается работать будет через задницу. Опять же интересно как создать виджет в трее
или его просто создавать на десктопе ? но тогда где его там создавать ? вроде же хрен отловишь позицию иконки в трее + в актив приходят только клики различные.
Записан
_OLEGator_
Гость
Re: QSystemTray drop файл
«
Ответ #6 :
Март 14, 2012, 11:03 »
Грязные хаки. Слишком геморно будет отслеживать позицию иконки в трее.
Копался в исходниках QSystemTrayIcon? как там реализован перехват кликов?
Записан
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: QSystemTray drop файл
«
Ответ #7 :
Март 14, 2012, 11:41 »
ну под виндой ловит виндовые события NIN_KEYSELECT, WM_LBUTTONDBLCLK, WM_CONTEXTMENU и прочие и посылает activated под остальными ОС не смотрел
Записан
Bepec
Гость
Re: QSystemTray drop файл
«
Ответ #8 :
Март 14, 2012, 12:03 »
Я поел и полон сил
счас развею ваши страхи и сомнения!!! (или добавлю новых
)
Тырить движения мышки и проверять вхождение в иконку (QSystemTrayIcon->geometry()->contains(QCursor::pos())) - работает.
Ставить фильтр - непоняяятно. Не работает.
update: попробовал и остановился на тырении мышки и вхождении в иконку. Получается довольно красивое и элегантное решение.
«
Последнее редактирование: Март 14, 2012, 13:08 от Bepec
»
Записан
ernie
Гость
Re: QSystemTray drop файл
«
Ответ #9 :
Март 15, 2012, 15:45 »
ВЕРЕС, а движения мышки как тырить,накладывать прозрачный виджет на весь экран или по таймеру?и что с производительностью в таком случае?
Записан
Bepec
Гость
Re: QSystemTray drop файл
«
Ответ #10 :
Март 15, 2012, 15:57 »
Я Верес
большая буква ток 1 и то по настроению
Движение мышки тырится ф-ций QCursor::pos().
Виджет создаётся и накладывается только в момент нахождения указателя над иконкой.
Таймер не грузит систему
В целом вообще незаметно
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...