Перехват нажатия мыши вне окна приложения. |
Здравствуйте, гость ( Вход | Регистрация )
Перехват нажатия мыши вне окна приложения. |
Danmerpro |
20.8.2012, 16:24
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 21.8.2011 Пользователь №: 2823 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день.
Имеется программа, помимо много чего программа умеет делать скриншот экрана Для того, чтобы сделать скриншот, главное окно программы скрывается, приложение спит 1 секунду (нужно, чтобы успело отрисоваться все на рабочем столе, и куски неотрисованного главного окна не попали на скрин), далее делает скриншот. Если во время спячки приложения нажать на кнопку мыши, например ПКМ, то вызовется контекстное меню рабочего стола/другого приложения и попадет на скрин. А так не хорошо. Я вижу два варианта решения проблемы: 1) Делать скрин сразу же, без спячки, но нужно как-то убедиться, что на экране все корректно. За долгое время не смог решить такую задачу. 2) Как-нибудь сказать системе "не реагируй на нажатие мыши". Но, похоже, Qt не предоставляет такой возможность. Кто что может подсказать? |
|
|
Trisch |
20.8.2012, 23:03
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
как вариант, сделать какой нибудь виджет прозрачным и развернуть на весь экран.
Но думаю должны быть варианты по проще))) Сообщение отредактировал Trisch - 20.8.2012, 23:04 |
|
|
iReset |
21.8.2012, 6:07
Сообщение
#3
|
Участник Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2 |
|
|
|
Danmerpro |
21.8.2012, 11:56
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 21.8.2011 Пользователь №: 2823 Спасибо сказали: 0 раз(а) Репутация: 0 |
как вариант, сделать какой нибудь виджет прозрачным и развернуть на весь экран. Под иксами не получается сделать прозрачный виджет. Программа позволяет как бы рисовать на рабочем столе. Для этого делается снимок экрана, затем виджет с этим снимком на весь экран. Не подходит. Виджет теряет мышь, как только скрывается. |
|
|
PAFOS |
21.8.2012, 12:23
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
Тут нету кроссплатформенного решения 100%.
|
|
|
Danmerpro |
21.8.2012, 14:49
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 21.8.2011 Пользователь №: 2823 Спасибо сказали: 0 раз(а) Репутация: 0 |
Тут нету кроссплатформенного решения 100%. Скорее всего да( Под Windows проблему решил, как было сказано ранее - прозрачный виджет на весь экран.
Если величина меньше 0,08, то виджет не показывается (вызываю setFullScreen), а может показывается, но не ловит нажатия мыши. |
|
|
PAFOS |
21.8.2012, 16:56
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
хотя....
попробуй так: 1. сверни окно с приложением 2. выполни QDesktopWidget::screen()->render(...) // тут с аргументами сам разберешься может быть и прокатит. я не проверял) |
|
|
Trisch |
21.8.2012, 23:23
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
попробуй прозрачность сделать с помощью этого:
под виндой и линуксом работает нормально) |
|
|
Danmerpro |
22.8.2012, 18:54
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 21.8.2011 Пользователь №: 2823 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Текстовая версия | Сейчас: 12.12.2024, 13:31 |