首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C++/Linux

    【QT】鼠标按键事件 - QMouseEvent & QKeyEvent

    按键事件 Qt 中的按键事件是通过 QKeyEvent 类来实现的。当键盘上的按键被按下或者被释放时,键盘事件便会触发。 在帮助文档中查找 QKeyEvent 类,查找按键事件中所有的按键类型,在帮助文档中输⼊:Qt::Key,如下图: (1)单个按键 代码示例:当某个按键被按下时,输出:某个按键被按下了; 1、新建项目, (QWidget *parent = nullptr); ~Widget(); // 声明按键按下事件 void keyPressEvent(QKeyEvent (this); } Widget::~Widget() { delete ui; } void Widget::keyPressEvent(QKeyEvent KeyboardModifier 中修改键的具体描述如下: 示例代码: void Widget::keyPressEvent(QKeyEvent *event) { // 组合按键

    3.2K10编辑于 2024-07-20
  • 来自专栏Jungle笔记

    Qt键盘事件(一)——检测按键输入

    01 环境 Microsoft Visual Studio 2008 + Qt4.8.6 02 UI 03 Qt按键事件—QKeyEvent QKeyEvent是一个描述Qt键盘事件的类。 04 实现 建立一个QKeyBoard的Qt Widget工程,在头文件中声明两个函数: void keyPressEvent(QKeyEvent *event); void keyReleaseEvent (QKeyEvent *event); 源文件中实现如下: void QKeyBoard::keyPressEvent(QKeyEvent *event){ switch(event->key()) /*default: this->ui.textEdit->append("KeyEvent");*/ } } void QKeyBoard::keyReleaseEvent(QKeyEvent

    4K20编辑于 2022-07-24
  • 来自专栏祥的专栏

    [QT]屏蔽Tab键切换控件焦点

    1 if (obj == ui.edit_m_relative) { if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); if (keyEvent->key() == Qt::Key_Tab) 2 if (obj == ui.edit_m_absolute) { if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); if (keyEvent->key() == Qt::Key_Tab) *keyEvent = static_cast<QKeyEvent*>(event); if (keyEvent->key() == Qt::Key_Tab)

    2.6K20发布于 2020-03-10
  • 来自专栏跟Qt君学编程

    Qt软键盘-发送按键事件

    QKeyEvent keyPress(QEvent::KeyPress, key, Qt::NoModifier, value); QKeyEvent keyRelease(QEvent::KeyRelease

    3.4K20发布于 2019-07-15
  • 来自专栏Jungle笔记

    Qt键盘事件(二)——长按按键反复触发event事件问题解决

    官方文档上提到一个QKeyEvent的成员函数isAutoRepeat: 可以看到,当event来自于auto-repeating key,isAutoRepeat返回true;当event事件来自于最初的按键 void QKeyBoard::keyPressEvent(QKeyEvent *event){ switch(event->key()){ case Qt::Key_Tab: 03 问题解决 在真正按键和松键事件触发时,加上对isAutoRepeat返回值的判断,具体判断如第2节总结所言,示例代码如下: void QKeyBoard::keyPressEvent(QKeyEvent /*default: this->ui.textEdit->append("KeyEvent");*/ } } void QKeyBoard::keyReleaseEvent(QKeyEvent

    5.2K20编辑于 2022-07-24
  • 来自专栏jiajia_deng

    Qt 键盘和定时器消息

    w.show(); return app.exec(); } #ifndef CWIDGET_H #define CWIDGET_H #include <QWidget> #include <QKeyEvent public QWidget { Q_OBJECT public: explicit CWidget(QWidget *parent = 0); void keyPressEvent(QKeyEvent *); void keyReleaseEvent(QKeyEvent *); // 定时器消息,需要 startTimer 才会触发 // 在需要的地方调用 startTimer timerId_1 = startTimer(1000); timerId_2 = startTimer(1000); } void CWidget::keyPressEvent(QKeyEvent // 按下alt后,根据 timerId 关闭一个定时器 killTimer(timerId_1); } } void CWidget::keyReleaseEvent(QKeyEvent

    33120编辑于 2023-10-20
  • 来自专栏Pou光明

    Qt5.12+OpenGL可编程管线之创建OpenGL窗口

    initializeGL(); virtual void resizeGL(int w, int h); virtual void paintGL(); void keyPressEvent( QKeyEvent *e ); }; .cpp部分: #include <QKeyEvent> MyGLWidget::MyGLWidget(QWidget *parent) : QOpenGLWidget(parent 使用三种颜色的分量可配置出超过1600万种不同的颜色 glClear(GL_COLOR_BUFFER_BIT); //清空屏幕的颜色缓冲 } void MyGLWidget::keyPressEvent(QKeyEvent

    97111发布于 2020-01-02
  • 来自专栏C++

    【从零开始的Qt开发指南】(十七)Qt 事件详解:按键与鼠标事件的全方位实战指南

    其中,按键事件(QKeyEvent)和鼠标事件(QMouseEvent)作为最常用的交互事件,直接决定了应用程序的操作体验。 Qt 为它们分别提供了专门的处理类:QKeyEvent(按键事件)和QMouseEvent(鼠标事件),同时提供了一系列可重写的虚函数,让开发者能够轻松捕获和处理各类操作。 二、按键事件(QKeyEvent)深度解析 按键事件用于处理键盘的按下、释放等操作,比如快捷键设置、文本输入响应、游戏中的方向控制等场景都是离不开它的。 Qt 通过QKeyEvent类封装按键事件的相关信息,包括按下的按键类型、是否结合修饰键(如 Ctrl、Shift)等。 *event):当键盘按键被按下时触发 keyReleaseEvent(QKeyEvent *event):当键盘按键被释放时触发 这两个函数的参数QKeyEvent *event包含了按键事件的关键信息

    42111编辑于 2026-01-14
  • 来自专栏Linux驱动

    17.QT-事件处理分析、事件过滤器、拖放事件

    { Q_OBJECT public: explicit QMyLineEdit(QWidget *parent = 0); void keyReleaseEvent( QKeyEvent QMyLineEdit line; public: explicit QMyWidget(QWidget *parent = 0); void keyReleaseEvent( QKeyEvent QMyWidget(QWidget *parent) : QWidget(parent), line(this) { } void QMyWidget::keyReleaseEvent( QKeyEvent if (obj == textEdit) { if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); qDebug() << "Ate key press" << keyEvent->key

    2K20发布于 2018-05-28
  • 来自专栏Pou光明

    Qt事件系统与应用举例

    一些事件,例如QMouseEvent和QKeyEvent ,来自窗口系统。 一些,例如QTimerEvent ,来自其他来源;有些来自应用程序本身,如自定义事件等。 3. 事件类型 大多数事件类型都有特殊的类,尤其是QResizeEvent , QPaintEvent , QMouseEvent , QKeyEvent和QCloseEvent 。 event(QEvent *event){ if (event->type() == QEvent::KeyPress) { //无法捕获,被窗口焦点优先捕获 QKeyEvent *ke = static_cast<QKeyEvent *>(event); if (ke->key() == Qt::Key_Tab) { // special

    2K30发布于 2020-05-07
  • 来自专栏祥的专栏

    [QT]响应键盘事件(附虚拟键值转换函数)

    要包含头文件#include <QKeyEvent> 1.1效果 ? 2.代码 2.1.按键响应代码 在头文件中声明 protected: //keyboard void keyPressEvent(QKeyEvent *event); void keyReleaseEvent (QKeyEvent *event); 在源文件中实现 // 键盘按下事件 void check_keyboard_mouse::keyPressEvent(QKeyEvent *event) { keyReleaseEvent()函数 而keyPressEvent()函数触发不了 */ // 按键释放事件 void check_keyboard_mouse::keyReleaseEvent(QKeyEvent QString check_keyboard_mouse::getKeyValue(QKeyEvent* event) { int keyValue;//数值表示意义 QString keyValue_Hex

    3.8K20发布于 2020-03-10
  • 来自专栏日常活动篇

    Qt5实战第十篇:Qt5事件处理详解

    widget; widget.show(); return app.exec();}键盘事件处理#include <QApplication>#include <QWidget>#include <QKeyEvent >#include <QDebug>class MyWidget : public QWidget { Q_OBJECTprotected: void keyPressEvent(QKeyEvent 调用基类的keyPressEvent以确保其他事件处理程序可以接收到事件 QWidget::keyPressEvent(event); } void keyReleaseEvent(QKeyEvent (QObject *obj, QEvent *event) override { if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); qDebug() << "Key pressed in event filter:" <

    91911编辑于 2025-01-03
  • 来自专栏Jungle笔记

    Qt设计机器人仿真控制器——按键控制机器人关节转动

    02 头文件设计 增加成员变量axisNum,用于记录用户想要控制哪个轴(1、2、3、4、5、6) 声明Qt按键事件函数 //按键事件 void keyPressEvent(QKeyEvent *event); void keyReleaseEvent(QKeyEvent *event); //用户按键控制轴号 int axisNum; 03 实现 在Qt键盘事件 基于上述考虑,keyPressEvent和keyReleaseEvent 实现如下: void Robot::keyPressEvent(QKeyEvent *event) { double curValue default: break; } break; } } } void Robot::keyReleaseEvent(QKeyEvent

    1.4K10编辑于 2022-07-24
  • 来自专栏Pou光明

    Qt 项目之虚拟键盘 V1.0

    生成键盘事件 void KeyBoard::buttonClicked(int key) { QKeyEvent *keyPressEvent = NULL; if ((key == Qt::Key_Enter) || (key == Qt::Key_Backspace)) keyPressEvent = new QKeyEvent(QEvent::KeyPress, key, Qt::NoModifier); else keyPressEvent = new QKeyEvent

    3.5K30发布于 2019-09-24
  • 来自专栏Pulsar-V

    VM技术(二)从CHIP8入手CPU的模拟(三)

    parent = 0); void link_cpu(CHIP8 &chip8); int keymap(unsigned char k); void keyPressEvent(QKeyEvent event); int timediff_ms(struct timeval *end, struct timeval *start); void keyReleaseEvent(QKeyEvent (void *) cpu.screen); glPixelZoom(2, 2); } //按键按下事件 void Monitor64x32::keyPressEvent(QKeyEvent return 0xf; default: return -1; } } //按键释放事件 void Monitor64x32::keyReleaseEvent(QKeyEvent

    83320发布于 2019-08-02
  • 来自专栏嵌入式项目开发

    QT应用编程: QGraphicsTextItem单击选中、双击进入编辑状态

    QGraphicsScene> #include <QGraphicsView> #include <QDebug> #include <QGraphicsSceneMouseEvent> #include <QKeyEvent QGraphicsTextItem::mouseDoubleClickEvent(event); } } void keyPressEvent(QKeyEvent

    3.3K10编辑于 2022-01-07
  • 来自专栏跟Qt君学编程

    Qt官方示例-图表缩放

    mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void keyPressEvent(QKeyEvent void ChartView::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case Qt::Key_Plus:

    2.5K20发布于 2020-07-02
  • 来自专栏乐意学点小编程

    【QT】Qt事件

    一、Qt事件 1、事件介绍 事件是应用程序内外部产生的事情以及动作的统称,常见的所有事件例如鼠标事件QMouseEvent,键盘事件QKeyEvent等等都是继承自QEvent 2、事件的处理 在Qt中几乎所有的 parent) : QLabel(parent) { } void Label::enterEvent(QEvent *event) { qDebug()<<"鼠标进入"; } QEvent 3、QKeyEvent 按键事件 (1)按下单个按键 void Widget::keyPressEvent(QKeyEvent *event) { if(event->key() == Qt::Key_A) { 主要是第五条这里的Meta键,在Windows上指Windows键,在Mac上指Command键,第六条Numlock处于打开状态,第七条是输入法切换的 void Widget::keyPressEvent(QKeyEvent

    1.5K10编辑于 2024-11-06
  • 来自专栏Linux驱动

    19.QT-事件发送函数sendEvent()、postEvent()

    this, SLOT(onPushButton())); } void Widget::onPushButton() { int key = Qt::Key_Delete ; QKeyEvent :KeyPress,key,Qt::NoModifier); QApplication::sendEvent(&edit,&EventPress); //发送键盘按下事件 QKeyEvent

    3.6K50发布于 2018-05-28
  • 来自专栏跟Qt君学编程

    轻量级Qt键盘-实现篇

    receiver) return; QKeyEvent keyPress(QEvent::KeyPress, key, Qt::NoModifier, value); QKeyEvent keyRelease(QEvent::KeyRelease, key, Qt::NoModifier, value); QApplication::sendEvent

    1.8K21发布于 2019-07-30
领券