我有以下行为。
我为我的widget类重载focusOutEvent()
处理程序。但是当小部件失去焦点时,不仅要调用处理程序,还要单击它。就像失去焦点然后重新获得它一样。
问题一:这是一个错误吗?
问题二:如果没有,是否有合理的方法来处理焦点丢失? - 插入所有focusChange()
信号看起来并不吸引人。
我正在使用Qt5.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
或任何窗口调用它是你最外面的窗口。
希望有所帮助。