我包括#include <QFocusEvent>
到我的代码和实施focusOutEvent
如下:focusOutEvent不叫
void MyWidget::focusOutEvent(QFocusEvent *e)
{
if(e->type() == QEvent::FocusOut)
{
fprintf(stderr, "hello");
}
}
微件描述符具有以下额外的线路:
installEventFilter(this);
setFocusPolicy(Qt::WheelFocus);
我也有头文件定义如下:
virtual void focusOutEvent(QFocusEvent * event);
问题是,无论我做什么(标签或者在其他地方点击)不会调用这个焦点事件。我该如何解决这个问题?
'installEventFilter(本);'应被删除。通常不需要为同一对象添加事件过滤器对象。如果事件在'eventFilter'方法实现中被过滤(如果有的话),它也可能是麻烦的原因。 –
删除了'installEventFilter',但没有更改。 – www