2011-10-28 5 views
1

は、私はボタン付きQTableWidgetの一部のセルを埋めるとしますQTableWidgets内のセルウィジェットは、クリーニング時に削除されますか?

ui->table->setCellWidget (i, 2, new QPushButton ("Details")); 

ただ、少し後で、私はそれらすべてを傷つけると、再びそれを行う:

ui->table->clear(); 

このボタンは自動的に削除されますでしょうか?または、それらのリストを保存して手動で削除する必要がありますか?また、すべてのボタンに親を指定する必要がありますか?QPushButton ("Details", ui->table)

答えて

2

テーブルウィジェットは、ウィジェットの所有権を取得します。このdocumentation状態:

がテーブルにウィジェットの所有権を渡し、所定の行のセルと列に表示する所与のウィジェットを設定します。

作成時に親を指定する必要はありません。これは、それに応じてテーブルウィジェットによって設定されます。

+0

それは私の質問の後半に答える、ありがとう:) – Septagram

+0

両方に答える必要がありますか? "tablewidget所有ウィジェット"は、それを削除することを意味します。 –

+0

"tablewidget所有ウィジェット"は、tablewidgetが削除されたときにtablewidgetがウィジェットを削除することを意味します。この動作はQObject AFAIKから発生します。問題は、 'tablewidget-> clear()'が呼び出されたときに起こるかどうかでした。tablewidgetは生きていますが、テーブルは消去されています。 – Septagram

関連する問題