54 自定义代理

各种视图组件皆源自QAbstractItemView类,该类为其中显示的每个数据项皆提供一个默认代理——单行文本编辑框(QLineEdit)组件。在编辑框中可以输入任何类型的数据,比较通用。但是某些情况下,可能希望针对特定的数据类型使用相应的编辑控件。比如,针对表格中表示的“性别”数据列,使用组合框显然比使用编辑框更为合理。

为此,可以从QStyledItemDetegate类派生出自己的子类,并覆盖其中的若干虚函数:

然后,将该自定义代理类的实例化对象交给视图: