bool SearchWidget::eventFilter(QObject* watched, QEvent* event)
{
if (watched == ui->lineEditSearch)
{
if (event->type() == QEvent::MouseButtonPress)
{
QMouseEvent* mouseEvent = dynamic_cast<QMouseEvent*>(event);
if (mouseEvent->button() == Qt::LeftButton)
{
//qDebug() << "eventFilter MouseButtonPress click lineEditSearch emit showTagsWidgetSignals";
emit showTagsWidgetSignals();
return true;
}
}
else if (event->type() == QEvent::Leave)
{
//qDebug() << "eventFilter Leave";
emit hideTagsWidgetSignals(true);
return true;
}
/*else if (event->type() =
Qt QLineEdit鼠标点击后,光标没有清除的问题
在Qt编程中,当QLineEdit被点击时,遇到光标未清除的问题。通过对QEvent的监听,处理QEvent::MouseButtonPress、QEvent::Leave、QEvent::FocusOut和QEvent::FocusIn事件,实现光标的正确行为。在FocusOut事件中,使用clearFocus()方法移除焦点,以达到清除光标的效果。
摘要由CSDN通过智能技术生成