qt按钮按下事件 Qt怎么实现以下的按键事件
发布时间:2017-04-05
来源:服务器之家
1. 程序实现f12按键截屏。。
2. 主界面已经实现了,f12截屏。。
3. 当主界面弹出messagebox时,f12失效了,因为当前焦点界面变化了!!
4.如何实现像window那样的hook键盘。。只要注册了,在程序运行时,不管那个界面都可以相应键盘消息!!
5.qt程序如何实现hook类型的按键消息。。
6。本程序中有大量的msgbox窗口。。要实现这个f12截屏,应该怎么做哪???
------解决方案--------------------
你可以去下载我自己写的一个屏幕绘图软件,里面实现了热键呼叫功能,按f5可以隐藏主界面,然后再按f6键就可以重新呼出这个界面。里面就是用到了hook编程,安装了键盘钩子。我今天刚上传到csdn上了,资源名称是“qt实现的屏幕绘图软件”,或者你可以加我qq,我发给你也行。我的qq是451087096,验证答案是宋慧荣。
------解决方案--------------------
用事件管理器,在mainwindow里操作messagebox的键盘事件。
------解决方案--------------------
如果只在windows下运行,试下registerhotkey注册系统热键吧。跨平台的话,不知道mac和linux有没有相关函数。用钩子的话,那和qt无关而和windows api有关了。
------解决方案--------------------
可以应用一下程序实现
nehewidget::keypressevent( qkeyevent *e )
{
switch (e-> key() )
{
case qt::key_f2:
fullscreen = !fullscreen;
if ( fullscreen )
{
showfullscreen();
}
else
{
shownormal();
setgeometry( 0, 0, 640, 480 );
}
updategl();
break;
//如果按下了f2键,那么屏
幕是否全屏的状态就切换一次。然后再根据需要,显示所要的全屏窗口或者普通窗口。
case qt::key_escape:
close();
}
//如果按下了escape键,程序退出。
}
------解决方案--------------------
探讨
用事件管理器,在mainwindow里操作messagebox的键盘事件。
------解决方案--------------------
------解决方案--------------------
qxtglobalshortcut
全局热键的处理
参考