You can do the same from within a delegate (or a proxy model), if you don't want to touch the original model. The proxy approach is similar to what J-P already suggested (additional advantage is that you can filter out columns which you need for calculation but don't want to show to the user), while in the delegate you'd have to reimplement paint() and modify the style option view item to reflect the state of the task.