首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt 键盘事件 各位大侠

2012-04-23 
qt 键盘事件求助各位大侠各位大侠,想请教个问题怎么用按钮来代替键盘事件呀?就是说如果按下键盘中的某个键

qt 键盘事件 求助各位大侠
各位大侠,想请教个问题 

怎么用按钮来代替键盘事件呀?就是说如果按下键盘中的某个键产生一个键盘事件,按下按钮时会产生一个一模一样的事件


另外:

bool QWidget::filter (int unicode, int keycode, int modifiers,
  bool isPress, bool /*autoRepeat*/)
{
  if (isPress && (Qt::AltModifier & modifiers) && (Qt::Key_Z == keycode))
  {
  printf("lijing ni yao jia you a !!!!!!!!!!!!!!!!!!!!!!!!!!!");
  }
}
这个filter函数是怎么个意思?是说当按下Alt + Z时才会进入到这个函数吗?这个能用按钮来模拟吗?(就是有两个按钮,Alt和Z在同时点击两个按钮时进入filter函数)
filter和Eventfilter有什么区别呢?

期待各位大侠的回答哦!不胜感激!!!!!

[解决办法]
先说一点题外话,这个函数没有return 编译肯定过不去。

你的这个filter和EventFilter的区别
filter就是一个普通的函数
EventFilter是一个QWidget类的虚函数。用于过滤其他控件的事件。

用按钮模拟键盘事件,其实没有必要,键盘事件被处理后,最后就是要执行一些代码
完成一些特定的功能。既然都有按钮了,为什么还要费劲转换成键盘事件。


[解决办法]
自己创建个QKeyEvent 填充进去key值mod值然后SendEvent或者PostEvent出去
[解决办法]
类似于
QKeyEvent event(QEvent::KeyPress, key , ascii , 0 , str , false , 0);
QApplication::sendEvent(app->focusWidget(), &event);
[解决办法]
http://doc.trolltech.com/4.4/qt.html#Key-enum
键盘事件的枚举值,参照这些枚举值,你自己的按钮改写键盘事件发射这些值就可以了

热点排行