qt - 选择非默认值时,QComboBox 在 UI 中不显示当前文本
问题描述
我正在使用 Qt for UWP 为 Windows 10 开发 UWP 应用程序。
我的应用程序中的 UI 元素之一是 QComboBox。当默认值(文本)未更改时,应用程序的逻辑和相应的 UI 将按预期工作。
但是,当我从下拉列表中选择不同的值时,下拉列表关闭后不会显示所选值。该框仍显示默认值(文本)。但是当我观察到接收到的值时currentIndex
,它对应于选定的值。每当我选择非默认值时,UI 似乎都被阻止了。除了 QComboBox 元素,我无法与任何其他 UI 元素交互。
有没有人遇到过这个问题?如何确保当前选择的值显示在 QComboBox 中?
更新:
我构建了一个演示应用程序来自行检查QComboBox
功能,我看到了相同的行为。我刚刚在小部件中添加了一些项目,并使用Qt 5.14.1的msvc2017_64和winrt_x64_msvc2017QComboBox
构建了应用程序。
当我启动使用msvc2017_64构建的应用程序时,我得到一个带有小部件的QComboBox
窗口。当我选择一个值时,该值会在下拉菜单关闭时显示。
但是,当我使用winrt_x64_msvc2017构建的 UWP 应用程序不是这种情况时。它没有向我显示更新的值。它停留在默认值。
我在原始 UWP 应用程序中观察到的另一个问题是,每当我单击QComboBox
并选择一个值时,我都无法重新控制 UI。UI 中的所有内容都卡住了,但无论我单击哪个按钮,都会在后台发出信号。UI 根本没有响应。
更新 2
我正在修补试图了解导致这种行为的原因。在此过程中,我偶然发现了一种解决方法,可以让 UI 再次响应。如果我QMessageBox
在QComboBox
's信号中启动 a ,当我在弹出窗口上按OKcurrentTextChanged
时,我会返回 UI 控件(对currentText
我之前选择的值的更改) 。QMessageBox
我不明白为什么这种解决方法让我重新控制了 UI 并使事情正常进行。请帮助我理解这一点。
解决方案
推荐阅读
- android - 如何在android上设置屏幕中间的按钮
- sony - 应该使用哪个 api 使用 wifi 链接将原始图像从 Sony qx 10 传输到我的电脑
- rpmbuild - 如何调用 RPM 作为服务
- django - 花仪表板不显示
- java - 单击推送通知时打开应用程序
- c# - .Net/VisualStudio 如何处理项目依赖项,每个项目依赖项具有相同 nuget 包的不同 nuget 目标
- python - 在虚拟环境中卸载 pip
- angular - 如何在没有html编译的情况下重定向`refresh`上的页面?
- azure-powershell - Set-AzureRmKeyVaultAccessPolicy cmdlet 将策略分配为用户而不是应用程序
- php - 替换字符串中的字符(连同存在于数组中的字符)