У меня проблема с QComboBox
.Когда я нажимаю на него, открывается раскрывающееся меню.Хорошо до сих пор.Затем (через некоторое время) я добавляю заставку Image QFrame
перед всем пользовательским интерфейсом (так же как и перед QComboBox
), но выпадающее меню все еще видно (над QFrame моего изображения заставки).
Сначала Я попытался программно щелкнуть по другому объекту, чтобы выполнить закрытие выпадающего меню.Другой объект был нажат, но раскрывающееся меню не собиралось закрываться:
void GUI::click(QObject *obj)
{
QMouseEvent evtPress(QEvent::MouseButtonPress, QPoint(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
qApp->sendEvent(obj, &evtPress);
QMouseEvent evtRelease(QEvent::MouseButtonRelease, QPoint(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
qApp->sendEvent(obj, &evtRelease);
}
Подход second , о котором я думал, состоит в том, чтобы перечислить все QComboBoxes
и закрытьраскрывающееся меню в цикле for
или foreach
.Но приложение довольно большое, и я не хочу этого делать по двум причинам:
- Вручную собрать все
QComboBoxes
и закрыть меню: не поддерживает дальнейшие модификации. - Программно собрать все
QComboBoxes
и закрыть меню: я думаю, что это довольно медленно (и я не знаю, как это сделать).