QComboBox не отображает текущий текст в пользовательском интерфейсе, когда выбрано значение не по умолчанию - PullRequest
0 голосов
/ 09 марта 2020

Я разрабатываю приложение UWP для Windows 10, используя Qt для UWP.

Одним из элементов пользовательского интерфейса в моем приложении является QComboBox. Логики приложения c и соответствующий пользовательский интерфейс работают, как ожидается, если значение по умолчанию (текст) не изменяется.

Однако, когда я выбираю другое значение из раскрывающегося списка, выбранное значение не отображается после закрытия раскрывающегося списка. Поле по-прежнему показывает значение по умолчанию (текст). Но когда я наблюдаю значение, полученное currentIndex, оно соответствует выбранному значению. Всякий раз, когда я выбираю значение не по умолчанию, пользовательский интерфейс кажется заблокированным. Я не могу взаимодействовать ни с какими другими элементами пользовательского интерфейса, кроме элемента QComboBox.

Кто-нибудь сталкивался с этой проблемой раньше? Как мне убедиться, что текущие выбранные значения отображаются в QComboBox?

ОБНОВЛЕНИЕ :

Я создал демонстрационное приложение для проверки функциональности QComboBox самостоятельно и я вижу такое же поведение. Я просто добавил несколько элементов в виджет QComboBox и создал приложение с msvc2017_64 и winrt_x64_msvc2017 из Qt 5.14.1 .

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

Однако, если это не так с приложением UWP, которое я создаю с помощью winrt_x64_msvc2017 . Это не показывает мне обновленное значение. Он по-прежнему застрял на значении по умолчанию.

Другая проблема, с которой я столкнулся в своем исходном приложении UWP, заключалась в том, что всякий раз, когда я нажимаю на QComboBox и выбираю значение, я не получаю контроль над пользовательским интерфейсом. Все в пользовательском интерфейсе застряло, но любая кнопка, которую я нажимаю, излучает сигнал в фоновом режиме. Пользовательский интерфейс вообще не отвечает.

ОБНОВЛЕНИЕ 2

Я пытался понять, что вызвало такое поведение. Во время этого процесса я наткнулся на обходной путь, чтобы пользовательский интерфейс снова ответил. Если я запускаю QMessageBox в сигнале QComboBox currentTextChanged, я возвращаю элемент управления пользовательского интерфейса (currentText изменяется на ранее выбранное значение), когда я нажимаю OK в всплывающее окно QMessageBox.

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

...