环境:
windows10
qt 5.11.1
问题:
一个combobox控件包含4个item,由于需求更改,需要将第2个item设置为不可选但可见。
解决办法:
//comboBox:控件名称
ui->comboBox->setItemData(1,"v",Qt::UserRole-1);
Qt::UserRole作用:
网上的资料:
Qt UserRole 就是组件 角色 ,在复杂系统中 使用的 比较多,原因也很简单,系统复杂,为了组件区分方便。 在 Qt 中很多类是可以给他添加 角色 值 的 ,比如说QComboBox中 的 setItemData ()与QStandardItemModel中 的 setData ()这两个函数,都是在Index位置上添加 角色 值。
个人理解:
在这里可以理解为索引。Qt::UserRole表示当前数据所在的索引值。假设当前索引为1,则“Qt::UserRole-1”表示0,即当前索引的上一个索引值。
注:“Qt::UserRole+1”无法实现从当前索引跳到下一个索引。
相关资料:
(84条消息) QT模型视图MVC系列教程(4)---角色role的使用(Qt::DisplayRole 类型)_野生猿-群号1025127672-CSDN博客