C++Qt 鼠标经过一个QLabel,显示改label得objectname
时间: 2023-12-10 21:40:28 浏览: 77
一个简单qt测试Qlabel程序
可以通过重载QLabel的鼠标进入事件和离开事件来实现。
在QLabel子类的头文件中,声明鼠标进入和离开事件:
```cpp
class MyLabel : public QLabel {
Q_OBJECT
public:
MyLabel(QWidget *parent = nullptr);
void enterEvent(QEvent *event) override;
void leaveEvent(QEvent *event) override;
};
```
在实现文件中,实现鼠标进入和离开事件:
```cpp
MyLabel::MyLabel(QWidget *parent)
: QLabel(parent)
{
// 构造函数中设置 objectName
setObjectName("MyLabel");
}
void MyLabel::enterEvent(QEvent *event)
{
// 鼠标进入事件,显示 objectName
setText(objectName());
}
void MyLabel::leaveEvent(QEvent *event)
{
// 鼠标离开事件,清空文本
clear();
}
```
在主窗口中使用自定义的MyLabel,并设置 objectName:
```cpp
MyLabel *label = new MyLabel(this);
label->setObjectName("MyLabel");
```
当鼠标经过这个QLabel时,会显示它的 objectName。
阅读全文