Прямо сейчас у меня есть небольшое инструментальное приложение, которое запускается в области значков. Когда я нажимаю на значок, приложение переходит в режим «windowstayontophint». Я добавил поле со списком в этом окне. Но когда я нажимаю в другом месте на рабочем столе, а затем нажимаю поле со списком, раскрывающееся окно переходит в заднюю часть окна. Кажется, это известная ошибка, о которой сообщается здесь:
https://bugreports.qt.io/browse/QTBUG-61804
Есть ли обходной путь для этого? Я использую Qt 5.9.1.
РЕДАКТИРОВАТЬ: добавить код:
Это в конструкторе MainWindow:
Qt::WindowFlags flags = this->windowFlags();
this->setWindowFlags(flags|Qt::WindowStaysOnTopHint);
Затем я помещаю QComboBox в главное окно с предварительно загруженными элементами. При первом нажатии раскрывающийся список появляется сверху, как обычно. Затем я нажимаю на рабочий стол, а затем снова на главное окно и поле со списком. И раскрывающийся список становится в задней части главного окна. Нажмите на ссылку выше, чтобы увидеть, что я имею в виду. Отчет об ошибке также содержит скриншот того, что происходит.
event()
для окна и когдаe->type() == QEvent::WindowActivate
вызвать функциюraise()
в поле со списком - person Innocent Bystander   schedule 20.04.2018