Фокус-событие при щелчке на сфокусированном виджете

У меня такое поведение.
Я перегружаю focusOutEvent() обработчик для моего класса виджетов. Но обработчик вызывается не только тогда, когда виджет теряет фокус, но и при нажатии на него. Точно так же, как это потеряет фокус, а затем вернет его.

Вопрос первый: Это ошибка?
Вопрос второй: Если нет, есть ли разумный способ справиться с потерей фокуса? — прорезать все focusChange() сигналы не выглядят привлекательно.

Я использую Qt5.1

4

Решение

Назовите ваши виджеты.

myWidget->setObjectName("MyWidget 1");

myWidget2->setObjectName("MyWidget 2");

Тогда на вершине вашего focusOutEvent() и ваш focusInEvent()Поместите полезный но отладочный код:

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

Теперь вы можете увидеть, что вызывает вашу проблему.

Возможно, вы также захотите сбросить дерево объектов, чтобы увидеть, есть ли у вас несколько экземпляров, плавающих вокруг.

QObject::dumpObjectTree();

Но позвони из своего QMainWindow или какое-либо окно является вашим внешним окном.

Надеюсь, это поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]