Я разрабатываю приложение 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
.
Я не понимаю, почему этот обходной путь возвращает мне контроль над пользовательским интерфейсом и заставляет все работать. Пожалуйста, помогите мне понять это.