2010-03-15 2 views
1

QTableWidget :: setItemPrototype говорит следующее.Как void QTableWidget :: setItemPrototype (const QTableWidgetItem * item) клонирует объекты?

«Виджет таблицы будет использовать функцию клонирования прототипа элемента, когда ему нужно создать новый элемент таблицы. Например, когда пользователь редактирует пустую ячейку. Это полезно, когда у вас есть подкласс QTableWidgetItem и вы хотите сделать что QTableWidget создает экземпляры вашего подкласса ».

Как это работает, поскольку вы можете передать какой-либо из подкласса подкласса QTableWidgetItem в setItemPrototype, и во время выполнения вы не можете получить размер объекта, имеющего только указатель на него?

ответ

4

QTableWidgetItem::clone() является функцией члена virtual и должен быть переопределен подклассами QTableWidget.
Таким образом, когда вызывается clone(), реализуется реализация clone() в подклассе, а в подклассе, конечно, известен правильный тип.

Смежные вопросы