Обходной путь Qt bug Выпадающий список Combobox появляется за окном

Прямо сейчас у меня есть небольшое инструментальное приложение, которое работает в трее значков. Когда я нажимаю на значок, приложение переходит в режим "windowstayontophint". Я добавил поле со списком в этом окне. Но когда я щелкаю в другом месте на рабочем столе, а затем нажимаю поле со списком, раскрывающееся окно переходит к задней части окна. Похоже, что это известная ошибка:

https://bugreports.qt.io/browse/QTBUG-61804

Есть ли обходной путь для этого? Я использую Qt 5.9.1.

РЕДАКТИРОВАТЬ: Добавить код:

Это в конструкторе MainWindow:

Qt::WindowFlags flags = this->windowFlags();
this->setWindowFlags(flags|Qt::WindowStaysOnTopHint);

Затем я поместил QComboBox в главное окно с предварительно загруженными элементами. При первом нажатии раскрывающийся список отображается сверху, как обычно. Затем я нажимаю на рабочий стол, а затем снова на главное окно и комбинированный список. И выпадающий становится в конце главного окна. Нажмите на ссылку выше, чтобы увидеть, что я имею в виду. Отчет об ошибке также предоставляет скриншот того, что происходит.

1 ответ

Решение

Никто не хочет ставить ответ, поэтому я отвечаю на это сам.

ОТВЕТ: Обновление до последней версии Qt.

Это не сработало для меня, потому что у меня были проблемы с обновлением (нуб здесь). В основном это произошло из-за того, что при выборе параметра "Обновить" в инструменте обслуживания SDK не обновляется с 5.9.1 до 5.10.1. Он обновляет только некоторые вещи, такие как Qt Creator.

Мне нужно было выбрать "Добавить или удалить компоненты", а затем добавить Qt 5.10.1, но только проверить только MinGW 32bit. (Снимите флажки со всех остальных, в противном случае они вам нужны (например, Android или другие)).

Даже после этого вам также необходимо вручную загрузить CMake (получить его с cmake.com) и установить его в "Управление наборами" в Qt Creator.

Другие вопросы по тегам