У меня проблема с QComboBox
. Когда я нажимаю на него, он открывает выпадающее меню. До сих пор хорошо. Затем (через некоторое время) я добавляю изображение заставки 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);
}
Второй подход, о котором я подумал, состоит в том, чтобы перечислить все QComboBoxes
и закрыть раскрывающееся меню в цикле for
или foreach
. Но приложение довольно большое, и я не очень хочу этого делать по двум причинам:
- Вручную собрать все
QComboBoxes
и закрыть меню: не поддерживает дальнейшие модификации. - Программно собрать все
QComboBoxes
и закрытие меню: думаю, довольно медленно (и я не знаю, как это сделать).
QComboBoxes
из моего пользовательского интерфейса? Это возможно? 11.10.2018ui
qcomboboxes
, и этот список будет довольно большим. Я имею в виду большой. Shure, если бы у меня не было другого выбора, я бы сделал это с помощью списка, созданного вручную, но я боюсь этого делать. 11.10.2018