点击聚焦小部件的焦点事件

时间:2013-05-28 13:48:42

标签: c++ qt qt5.1

我有以下行为。
我为我的widget类重载focusOutEvent()处理程序。但是当小部件失去焦点时,不仅要调用处理程序,还要单击它。就像失去焦点然后重新获得它一样。

问题一:这是一个错误吗? 问题二:如果没有,是否有合理的方法来处理焦点丢失? - 插入所有focusChange()信号看起来并不吸引人。

我正在使用Qt5.1

1 个答案:

答案 0 :(得分:0)

命名您的小部件。

myWidget->setObjectName("MyWidget 1");

myWidget2->setObjectName("MyWidget 2");

然后在focusOutEvent()focusInEvent()的顶部,提供一个有用但有用的调试代码:

qDebug() << Q_FUNC_INFO << "called by" << qPrintable(this->objectName());

现在您可以看到导致问题的原因。

您可能还想转储对象树,以便查看是否有多个实例浮动。

QObject::dumpObjectTree();

但是从你的QMainWindow或任何窗口调用它是你最外面的窗口。

希望有所帮助。