void QTableWidget::setItemPrototype ( const QTableWidgetItem * item ) 如何克隆对象?

Posted

技术标签:

【中文标题】void QTableWidget::setItemPrototype ( const QTableWidgetItem * item ) 如何克隆对象?【英文标题】:How does void QTableWidget::setItemPrototype ( const QTableWidgetItem * item ) clones objects? 【发布时间】:2010-03-15 04:50:29 【问题描述】:

QTableWidget::setItemPrototype 说明如下。

"当需要创建一个新的表格项时,表格小部件将使用项原型克隆功能。例如,当用户在一个空单元格中进行编辑时。当您有一个 QTableWidgetItem 子类并希望确保QTableWidget 创建您的子类的实例。”

这实际上是如何工作的,因为您可以将任何 QTableWidgetItem 子类指针传递给 setItemPrototype,并且在运行时您无法获得只有指针的对象的大小?

【问题讨论】:

【参考方案1】:

QTableWidgetItem::clone() 是一个virtual 成员函数,必须由QTableWidget 的子类重新实现。 因此,当clone()被调用时,子类中clone()的实现被调用,而在子类中,正确的类型当然是已知的。

【讨论】:

以上是关于void QTableWidget::setItemPrototype ( const QTableWidgetItem * item ) 如何克隆对象?的主要内容,如果未能解决你的问题,请参考以下文章

错误:从‘void*’到‘void* (*)(void*)’的无效转换 - pthreads

void类型及void指针

Void & void Void用在泛型

void类型和void* 的用法

void*和void类型

C中的“void (*f)(void)”是啥意思