如何从Qt Designer/.ui文件向QComboBox添加项目数据

LRF*_*LEW 7 qt designer qt-designer qcombobox

我正在使用Qt Designer(实际上,Qt Creator,但特别是从Qt Designer派生的部分),我在一个带有常量项目列表的对话框中添加了一些QComboBox项目.我需要将组合框中的项映射到字符串(与显示的字符串不同).我提出的最好的想法是使用QComboBox :: itemData函数从所选项目中获取所需的字符串,但是我无法将相关的字符串添加到项目中.我看了整个设计师,还没有看到添加用户数据的方法.那里有一个我想念的吗?我也愿意直接编辑.ui文件的XML以在需要时添加属性,但我无法弄清楚属性名称是什么.我可以在这里使用吗?目前我在代码中添加数据,但它似乎不是我的正确解决方案.

Dsc*_*oni 22

编辑:因为这个答案似乎比它应该得到更多的赞成.我会把它留在这里,因为很多人似乎在谷歌搜索他们的问题时会找到这个答案.下面的答案更适合OP的答案.

在QT designer 5.6.2中,您可以双击组合框以添加项目.

  • 这回答了错误的问题。是的,您可以通过这种方式向 QComboBox 添加更多元素,但这不是我要问的。我问的是为已添加的项目设置项目数据。http://doc.qt.io/qt-5/qcombobox.html#setItemData Qt Designer 不支持设置您自己的 Qt::UserRole 数据。您只能编辑每个元素的文本和图标数据。 (4认同)

LRF*_*LEW 6

好的,所以我实际上浏览了uic的源代码,找到了处理QComboBox的地方.从当前版本的Qt(如此5.5.1)开始,不支持通过.ui文件设置项目的数据属性.我可能会将此功能作为功能请求,但就目前而言,它不受支持.