我有一个多层次的QTreeView(目前有3个级别,将更多取决于), 我为每个级别创建了3个不同的委托 但是如何正确地将代理应用于QTreeView? 下图显示了我想要的内容:
>Row 0 -------------------- delegate A
>Row 1 -------------------- delegate A
^Row 2 -------------------- delegate A
^Row 20 ----------------- delegate B
Row 200 -------------- delegate C
Row 201 -------------- delegate C
Row 202 -------------- delegate C
^Row 21 ----------------- delegate B
Row 210 -------------- delegate C
Row 211 -------------- delegate C
Row 212 -------------- delegate C
This function:
QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate * delegate);
With this function, I can only assign the delegate for the first level of the TreeView.
And its children (level 2, level 3) are gonna share the same delegate with level 1
如何将代表B分配给第20行和第21行? 如何将代理C分配给第200行,第201行,第202行......
答案 0 :(得分:0)
我认为你试图完成它的方式是不可能的。相反,我建议您为所有项目分配一个公共委托,并在处理程序内部根据行/列索引选择不同的路径。可能有点乱。