Russian Qt Forum

Qt => Общие вопросы => Тема начата: baka от Декабрь 09, 2010, 03:00



Название: Отловить нажатие PrintScreen клавиши.
Отправлено: baka от Декабрь 09, 2010, 03:00
Добрый день,
у меня такой вопрос...
можно ли в Qt отловить нажатие PrintScreen c помощью QKeySequence?
или еще к.либо?


Название: Re: Отловить нажатие PrintScreen клавиши.
Отправлено: kibsoft от Декабрь 09, 2010, 12:40
В keyPressEvent у виджета. Можно фильтр поставить еще.

http://www.doc.crossplatform.ru/qt/4.6.x/eventsandfilters.html


Название: Re: Отловить нажатие PrintScreen клавиши.
Отправлено: baka от Декабрь 09, 2010, 15:08
Это я знаю, я наверное не удачно вопрос сформулировал.

Дело в том что нажатие клавиши Print Screen не приходит на обработку моей проге.
(Поэтому я и поместил Тему в раздел - Компиляторы и платформы > Windows.)

т.е. если я буду перекрывать обработчик вот так...
Код:
void MainWindow::keyPressEvent(QKeyEvent * e) {
qDebug()<<e->key();
}
то при нажатии на Pringscreen ни чего не происходит.


а вообще мне надо перехватывать
примерно вот в таком месте
Код:
QMenu * menu = new QMenu("myMenu");
menu->addAction(tr("do ScreenShot"), this, SIGNAL(createScreenshot()), QKeySequence(Qt::CTRL + Qt::Key_Print));
myTrayIcom->setContextMenu(menu);

Судя по тому что в константах присутствует - Qt::Key_Print
мне показалось что принтскин как то можно получать в прогах на Qt.

Можно ли к.либо образом попросить Qt перехватывать у Win нажатие на PrintScreen???



Название: Re: Отловить нажатие PrintScreen клавиши.
Отправлено: Пантер от Декабрь 09, 2010, 15:13
Ты хочешь глобального шортката, Кьют его не поддерживает. Есть сторонние разработки, поищи по форуму (я не помню названия).


Название: Re: Отловить нажатие PrintScreen клавиши.
Отправлено: baka от Декабрь 09, 2010, 15:34
Ясно, спасибо большое !!!!!!!!!!!!!!!!!!!


Название: Re: Отловить нажатие PrintScreen клавиши.
Отправлено: kibsoft от Декабрь 09, 2010, 17:16
http://qt-apps.org/content/show.php/libqxt?content=75450 в этой либе есть.
QxtGlobalShortcut называется.