`
feipigwang
  • 浏览: 769868 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

qt 键盘按键事件 范例 keyPreEvent()

 
阅读更多

  1. CompleteLineEdit::keyPressEvent(QKeyEvent*e){
  2. if(!listView->isHidden()){
  3. intkey=e->key();
  4. intcount=listView->model()->rowCount();
  5. QModelIndexcurrentIndex=listView->currentIndex();
  6. if(Qt::Key_Down==key){
  7. //按向下方向键时,移动光标选中下一个完成列表中的项
  8. introw=currentIndex.row()+1;
  9. if(row>=count){
  10. row=0;
  11. }
  12. QModelIndexindex=listView->model()->index(row,0);
  13. listView->setCurrentIndex(index);
  14. }elseif(Qt::Key_Up==key){
  15. //按向下方向键时,移动光标选中上一个完成列表中的项
  16. introw=currentIndex.row()-1;
  17. if(row<0){
  18. row=count-1;
  19. }
  20. QModelIndexindex=listView->model()->index(row,0);
  21. listView->setCurrentIndex(index);
  22. }elseif(Qt::Key_Escape==key){
  23. //按下Esc键时,隐藏完成列表
  24. listView->hide();
  25. }elseif(Qt::Key_Enter==key||Qt::Key_Return==key){
  26. //按下回车键时,使用完成列表中选中的项,并隐藏完成列表
  27. if(currentIndex.isValid()){
  28. QStringtext=listView->currentIndex().data().toString();
  29. setText(text);
  30. }
  31. listView->hide();
  32. }else{
  33. //其他情况,隐藏完成列表,并使用QLineEdit的键盘按下事件
  34. listView->hide();
  35. QLineEdit::keyPressEvent(e);
  36. }
  37. }else{
  38. QLineEdit::keyPressEvent(e);
  39. }

分享到:
评论
1 楼 wwq100 2012-08-07  

相关推荐

    Qt后台监听键盘按键事件

    该实例程序使用Qt进行,windows的键盘后台监听,即使Qt桌面程序失去焦点在后台运行,也会捕捉到按键事件 这个程序使用windows的钩子(hook)实现的,Qt官方没有相关的实现 关于编译,我用的是Qt5.9.7 MinGW32位,我...

    QT 键盘监听(重写监听事件)

    首先,QT中的键盘事件主要有QEvent::KeyPress和QEvent::KeyRelease两种,分别对应于按键按下和按键释放。为了全局监听键盘事件,我们需要自定义一个事件过滤器类,继承自QObject,并重写其eventFilter()方法。事件...

    Qt按键测试(源代码)

    在本文中,我们将深入探讨如何使用Qt库来处理按键事件,并通过一个名为"QtKeyWrap"的源代码示例来实现对游戏按键处理的优化。Qt是一个强大的跨平台应用程序开发框架,广泛应用于桌面、移动和嵌入式系统,提供丰富的...

    QT实时捕获鼠标及键盘事件

    在QT中,我们可以利用其丰富的API来实现对鼠标和键盘事件的实时捕获和处理,这对于创建交互性强的应用程序至关重要。下面我们将深入探讨如何在QT中实现这一功能。 首先,我们关注的是“实时捕获鼠标事件”。在QT中...

    基于QT开发的一款按键精灵

    在这款基于QT开发的按键精灵中,开发者利用了QT的事件处理机制来捕捉和响应用户的键盘输入。按键精灵的主要功能是模拟用户对键盘的操作,例如自动按下特定的按键序列,这对于游戏自动化、测试脚本编写或任何需要重复...

    Qt 键盘事件代码实例

    首先,`Qt`中的键盘事件分为两类:按键按下事件和按键释放事件。当用户按下键盘上的一个键时,会触发`keyPressEvent(QKeyEvent *event)`,这个函数会被关联的对象调用,传递一个`QKeyEvent`对象作为参数,其中包含了...

    qt键盘映射和焦点移动

    在Qt框架中,键盘输入是通过键盘事件来处理的,这些事件包括QKeyEvent。Qt提供了丰富的键盘信号和槽机制,允许开发者监听和响应特定的键盘按键。例如,`keyPressEvent`和`keyReleaseEvent`函数分别用于处理按键按下...

    编写QT键盘插件(自定义GPIO按键)

    在深入探讨如何编写一个用于开发板的QT自定义GPIO按键键盘插件之前,我们先来理解几个关键概念:QT框架、GPIO按键以及键盘插件的工作原理。 ### QT框架 QT是一个跨平台的应用程序开发框架,它由C++类库和各种工具...

    qt 系统钩子获取鼠标键盘事件

    在Qt框架中,系统钩子(System Hooks)是一种机制,允许开发者监听并处理系统的底层事件,如鼠标和键盘输入。这种技术对于开发需要全局监控或响应用户输入的应用程序尤其有用。下面将详细介绍如何使用Qt来实现系统...

    qt获取按键双击、多击事件

    在给定的标题和描述中,“qt获取按键双击、多击事件”是指通过Qt库实现对键盘按键的监听,特别是如何检测到用户连续快速按下特定键(如Shift键)的次数。这个实例是为了模拟Windows系统中的一个特性,即当用户连续...

    QT多个按键同时按下的实现方法

    综上所述,QT提供了丰富的键盘事件处理功能,允许开发者轻松实现多个按键同时按下。通过正确地监听和处理键盘事件,维护按键状态,并利用信号与槽机制,我们可以构建出具备复杂键盘交互功能的应用程序。在实际开发中...

    Qt捕获组合按键实现

    qt的键盘事件不能捕获多个按键按下.即便是在使用modifiers()时,也只能获得类似于shfit+x,ctrl+c,alt+y等等之类的快捷键,对于shift+x+c诸如此类更多的组合就无能为力的.本案例中提供了一种捕获shift+a+b...组合键的...

    QT linux下获取键盘和鼠标事件

    在QT框架下开发Linux应用程序时,获取键盘和鼠标事件是常见的需求,这有助于实现用户交互和界面控制。本文将深入探讨如何在Linux环境下利用QT库来捕获和处理这些事件。 首先,QT是一个跨平台的应用程序开发框架,...

    QT Linux系统捕获键盘事件,抓取键盘,无论焦点是否在此界面或进程上

    Linux系统捕获键盘事件,抓取键盘事件,无论焦点是否在此界面或进程上。类似,windows下hook的作用,可以捕获事件。可以区分按下,抬起按键,长按等。再加上定时器,可以判断组合键,不是简单的shift+A, 可以实现A+B...

    基于QT5.11简易鼠标键盘自动连发 鼠标键盘连发 Windows API

    标题中的“基于QT5.11简易鼠标键盘自动连发 鼠标键盘连发 Windows API”揭示了这个项目是使用QT 5.11框架开发的一个应用,它具有自动模拟鼠标点击和键盘按键的功能。QT是一个跨平台的C++应用程序开发框架,尤其适合...

    Qt界面响应键盘事件

    总结一下,"Qt界面响应键盘事件"涉及到理解`QKeyEvent`类、信号与槽机制、事件过滤器,以及如何根据按键码执行相应的操作。通过正确地连接和处理这些事件,你可以使Qt应用具备丰富的交互性,提供更优秀的用户体验。...

    Qt全局鼠标、键盘事件监听器库

    【Qt全局鼠标、键盘事件监听器库】是一个用于在Windows和Linux系统上实现跨平台的全局鼠标和键盘事件捕获的库。这个库基于流行的Qt框架,为开发者提供了一个便捷的方式来监听并处理系统的输入事件,无论是来自应用...

    Qt鼠标键盘响应事件示例

    本文将详细讲解如何在Qt中实现鼠标和键盘的响应事件,以帮助初学者更好地理解和应用这些基本功能。 首先,我们要了解Qt中的事件系统。Qt采用事件驱动模型,即应用程序在接收到操作系统发送的事件后,通过事件处理器...

    编写QT键盘插件 gpio 。linux

    - **基于 `QObject` 和 `QWSKeyboardHandler` 派生的键盘处理类**:负责与底层硬件交互,包括打开、关闭 GPIO 设备文件以及读取按键事件等操作。 2. **代码实现**: - **gpiokbdplugin.h** 文件定义了 `...

Global site tag (gtag.js) - Google Analytics