我正在检查 Qt 示例 Spin Box Delegate 示例。在示例中
QWidget *SpinBoxDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &/* option */,
const QModelIndex &/* index */) const
{
QSpinBox *editor = new QSpinBox(parent);
...
return editor;
}
后期如何删除指针编辑器?删除是由 QItemDelegate 析构函数完成的吗?但是 QItemDelegate 的析构函数不是虚拟的。任何人都可以帮我解释它是如何工作的?
我不能在 QtCreator 中放置任何断点。我理解的方式是每次调用虚函数 createEditor() 时,都会分配一个新的内存主干,并且客户端代码将在函数结束时丢失指针。关于 createEditor() 的 Qt 文档没有解释。但我猜 tableView 中的每个单元格都会有一个编辑器,对吗?
我真的很想知道 Qt 如何删除那些 QWidget 指针。
谢谢