qtQLabel点击事件代码
时间: 2024-01-12 12:02:23 浏览: 131
以下是一个简单的实现QLabel点击事件的示例代码:
```cpp
#include <QApplication>
#include <QLabel>
class ClickableLabel : public QLabel
{
Q_OBJECT
public:
explicit ClickableLabel(const QString& text, QWidget* parent = nullptr)
: QLabel(parent)
{
setText(text);
setAlignment(Qt::AlignCenter);
setFixedSize(200, 30);
}
signals:
void labelClicked();
protected:
void mousePressEvent(QMouseEvent* event) override
{
if (event->button() == Qt::LeftButton) {
emit labelClicked();
}
}
};
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
ClickableLabel* label = new ClickableLabel("点击我");
label->show();
QObject::connect(label, &ClickableLabel::labelClicked, []() {
qDebug() << "labelClicked";
});
return a.exec();
}
#include "main.moc"
```
在上述代码中,我们继承了QLabel,并重写了mousePressEvent()函数。当鼠标左键点击事件发生时,我们发出自定义的labelClicked信号。在main函数中,我们创建了一个ClickableLabel实例,并将其显示出来,并连接了labelClicked信号,打印出"labeledClicked"。
阅读全文