我有一个Qt / cpp代码并显示一个子类QLineEdit
。双击QLineEdit
时,永远不会调用focusInEvent
(在Maya中启动)。
void myQLineEditClass::focusInEvent(QFocusEvent *e)
{
MGlobal::displayInfo(MQtUtil::toMString(QString().sprintf("HERE")));
QLineEdit::focusInEvent(e);
}
如果.h保护部分中存在focusInEvent
,则不会显示此事件。知道如何获得focusInEvents吗?
答案 0 :(得分:1)
尝试以下方法。有几次在focusInEvent没有的情况下对我有用。
void YourWidget::changeEvent(QEvent* event)
{
if (event->type() == QEvent::ActivationChange)
{
if (isActiveWindow())
{
// gaining the focus
}
else
{
// loosing the focus
}
}
// or whatever *parent* class call is
QWidget::changeEvent(event);
}
答案 1 :(得分:0)
该事件被编辑器小部件拦截。见QItemDelegate::createEditor
。返回的小部件将获得它。
答案 2 :(得分:0)
问题与QLineEdit位于另一个QGraphicsView中的QGraphicsView中有关。将QLineEdit引入更高级别的QGraphicsView使其工作。