Обработка нажатия клавиши PrintScreen |
Здравствуйте, гость ( Вход | Регистрация )
Обработка нажатия клавиши PrintScreen |
Bartimeus33nt10 |
18.8.2011, 12:41
Сообщение
#11
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 16.8.2011 Пользователь №: 2812 Спасибо сказали: 0 раз(а) Репутация: 0 |
Но нажатие PrintScreen она не хочет перехватывать ни в какую. а в libqxt такая кнопка вообще есть?хм, в каком плане? Я воспользовался QxtGlobalShortcut оттуда.
|
|
|
Litkevich Yuriy |
18.8.2011, 13:48
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
QxtGlobalShortcut hotkeyHandle; в этом коде hotkeyHandle временный (локальный) объект, он умрёт по выходу из функции.
hotkeyHandle.setShortcut(Qt::Key_Print); hotkeyHandle.setEnabled(true); connect(&hotkeyHandle, SIGNAL(activated()), this, SLOT(hotkeyPressed()) ); |
|
|
Bartimeus33nt10 |
18.8.2011, 14:55
Сообщение
#13
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 16.8.2011 Пользователь №: 2812 Спасибо сказали: 0 раз(а) Репутация: 0 |
туда передается указатель на этот объект, так что ты тут ошибаешься.
но дело не в нем. Точнее адрес передается |
|
|
silver47 |
19.8.2011, 13:00
Сообщение
#14
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Точнее адрес передается Он как раз не ошибается. То что Вы написали, это вполне себе вероятный выстрел в ногу. Что будет выведено в результате такой программы и всегда ли вывод будет таким, каким вы ожидаете:
Это этюд относительно простых переменных. В случае с объектами же, думаю что будет вызван деструктор объекта и сигнал издавать будет просто некому. Сообщение отредактировал silver47 - 19.8.2011, 13:05 |
|
|
Bartimeus33nt10 |
21.8.2011, 21:11
Сообщение
#15
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 16.8.2011 Пользователь №: 2812 Спасибо сказали: 0 раз(а) Репутация: 0 |
Согласен, после выхода из функции по адресу переменной хранящей пятерку будет мусор.
Но, в моем случае ситуация совершенно другая. Тут идет передача параметров функции по ссылке. Посмотрите нижеприведенный код.
Сам можешь убедится, что деструктор не будет вызываться при выходе из testFunction. А по теме у кого нибудь есть идеи? |
|
|
Bartimeus33nt10 |
23.8.2011, 16:00
Сообщение
#16
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 16.8.2011 Пользователь №: 2812 Спасибо сказали: 0 раз(а) Репутация: 0 |
QxtGlobalShortcut hotkeyHandle; в этом коде hotkeyHandle временный (локальный) объект, он умрёт по выходу из функции.hotkeyHandle.setShortcut(Qt::Key_Print); hotkeyHandle.setEnabled(true); connect(&hotkeyHandle, SIGNAL(activated()), this, SLOT(hotkeyPressed()) ); А, я понял, что вы имели ввиду. Нет, такого у меня не будет, потому что этот hotkeyHandle является членом класса. Каюсь, не очень корректно привел кусок кода Но не суть важно. Важно, что не работает перехват именно кнопки принтскрина. Если поставить любую другую клавишу - все работает. |
|
|
Litkevich Yuriy |
23.8.2011, 19:54
Сообщение
#17
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Bartimeus33nt10, не может ли быть такой ситуации: виндовоз не посылает соответствующего уведомления приложениям, считая эту кнопку "своей" ?
Ведь в виндах <PrintScreen> и <Alt>+<PrintScreen> делают снимок экрана (окна) и помещают растр в буфер обмена. |
|
|
Bartimeus33nt10 |
23.8.2011, 20:02
Сообщение
#18
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 16.8.2011 Пользователь №: 2812 Спасибо сказали: 0 раз(а) Репутация: 0 |
Litkevich Yuriy
Воот, хорошо. Да, это и была первая у меня мысль. Вопрос в том, что это как то надо обойти. Или выдрать изображение из буфера. Но я не знаю как. |
|
|
Bartimeus33nt10 |
3.9.2011, 19:06
Сообщение
#19
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 16.8.2011 Пользователь №: 2812 Спасибо сказали: 0 раз(а) Репутация: 0 |
Отлично, на форуме толпа народа, но ни у кого даже мыслей по этому поводу нет.
|
|
|
RazrFalcon |
3.9.2011, 19:45
Сообщение
#20
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В Screenshot Example есть пример как забрать скрин экрана.
PS: если верить гуглу, кнопку PrintScreen перехватить в Qt нельзя. То есть нужно средствами системы делать скрин, а потом его забирать. PSS: все проги что я видел, стартуют по нажатию PrintScreen - самый простой способ. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 11:30 |