在QStatusBar中处理mouseevent

时间:2012-07-12 05:25:47

标签: qt qt4

在我的状态栏中,我添加了一个QLabel,其中显示了一些消息。现在我想要的是当我点击QLabel(出现在QStatusBar内)时,消息应该消失..

我在状态栏中添加了标签,如下所示:

QLabel *cpyrightlbl= new QLabel();
ui.statusBar->addWidget(cpyrightlbl);
cpyrightlbl->setText("Demo Message");
cpyrightlbl->setStyleSheet("border: 3px");
cpyrightlbl->setFixedWidth(frameGeometry().width());
cpyrightlbl->show();

1 个答案:

答案 0 :(得分:1)

您应该创建自己的类,该类派生自QLabel,然后重新实现函数QLabel::mousePressEvent ( QMouseEvent * ev )

void CMyLabel::mousePressEvent( QMouseEvent * ev )
{
    if( ev->button() == Qt::LeftButton )
    {
        this->clear();
        // or
        // this->setText( "" );
    }

    QLabel::mousePressEvent( ev );
}