В чем разница между QItemDelegate и QStyledItemDelegate?

оба класса предоставляют средства отображения и редактирования элементов данных из модели. QStyledItemDelegate новее и документация Qt о QItemDelegate гласит :

обратите внимание, что QStyledItemDelegate взял на себя работу по рисованию Qt представления элементов. Мы рекомендуем использовать QStyledItemDelegate при создании новый делегат.

Я смущен, в чем разница между этими двумя и почему QStyledItemDelegate предпочтительнее QItemDelegate!

1 ответов


как говорится в QStyledItemDelegate документация, разница в том, что QStyledItemDelegate использует текущий стиль для рисования своих элементов.

эти два класса являются независимыми альтернативами живописи и предоставление редакторов для элементов в представлениях. Разница между ними это QStyledItemDelegate использует текущий стиль для рисования своих элементов. Мы поэтому рекомендуем использовать QStyledItemDelegate как базовый класс, когда реализация пользовательских делегатов или при работе со стилем Qt простыни. Код, необходимый для любого класса, должен быть равен, если пользователь делегат должен использовать стиль для рисования.

обратите внимание, что этот ответ основан на комментариях Юлиу и Алекса