文本框鼠标离开触发函数

其实我想的是鼠标放在文本框的位置触发函数,网上给说的就鼠标点击触发的函数,在这里两种都写一下

鼠标点击获得焦点事件 onfocus 

鼠标点击失去焦点事件 onblur

鼠标移动事件 onmouse

在Qt 5.13.2中,如果你想重写QLineEdit(文本框)的鼠标进入(Enter)事件鼠标离开(Leave)事件,你可以通过覆盖`enterEvent()`和`leaveEvent()`这两个槽函数来实现。以下是基本步骤: 1. 首先,确保你的类是从QObject派生而来,并且包含了QLineEdit作为其成员。 ```cpp class MyLineEdit : public QObject, public QLineEdit { Q_OBJECT public: // ... private slots: void enterEvent(QEvent* event); void leaveEvent(QEvent* event); }; ``` 2. 实现`enterEvent()`函数,当鼠标指针移入文本框时会触发这个事件: ```cpp void MyLineEdit::enterEvent(QEvent* event) { emit mouseEntered(); // 发送信号表示鼠标进入了文本框 QLineEdit::enterEvent(event); // 调用父类的处理方法 } ``` 这里我们发送了一个自定义的信号`mouseEntered()`,可以在其他槽函数中捕获这个信号并执行相应操作。 3. 类似地,实现`leaveEvent()`函数,在鼠标离开文本框时: ```cpp void MyLineEdit::leaveEvent(QEvent* event) { emit mouseLeft(); // 发送鼠标离开信号 QLineEdit::leaveEvent(event); // 父类的处理 } ``` 同样发送了`mouseLeft()`信号。 4. 最后,如果你需要监听这些自定义信号,可以这样做: ```cpp connect(this, &MyLineEdit::mouseEntered, this, []() { qDebug() << "Mouse entered"; }); connect(this, &MyLineEdit::mouseLeft, this, []() { qDebug() << "Mouse left"; }); ``` 这样每当鼠标进入或离开文本框时,就会打印相应的消息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值