在 Qt 的 Model/View 体系中,经常需要用不同的 role 来不同的数据类型。在学习这里时我也有过疑惑为什么在 setData 方法中要用 EditRole 来保存修改的数据,而在 data 方法中要用 DisplayRole 来显示数据,同样的数据对应不同的 role?这是怎么回事!!!
后来才知道自己钻了牛角尖,role 在 Model/View 体系中对应不同的 “功能卡”,当你要显示某些数据时,对应的功能卡应当是 DisplayRole;当你要存储某些数据时,应使用 EditRole 功能卡。