0

私は GTK を初めて使用し、そのすべての用語とドキュメントはより良いものになる可能性があります。ボタンのクリックでクリアする必要がある次のコントロールがあります。

  • GTKTextView-1
  • GTKエントリー - 3
  • GTKラベル - 16

そこで、gtk_builder_get_object を呼び出してオブジェクト名のテーブルをループし、返されたオブジェクトを保存しようと考えていました (これらは Windows のハンドルのようなものですか?)。完了したらこれらを解放する必要がありますか、それともウィンドウを閉じたときに破棄されますか?

4

1 に答える 1

1

私はあなたの質問をあまり理解していません、あなたはウィジェットを破壊しようとしていますか?その場合は、gtk_widget_destroy()を使用する必要があります。

ウィジェットが破棄されると、ウィジェットが保持している他のオブジェクトへの参照がすべて破棄されます。ウィジェットがコンテナ内にある場合、ウィジェットはコンテナから削除されます。ウィジェットがトップレベル(GtkWindowから派生)の場合、それはトップレベルのリストから削除され、GTK+が保持している参照が削除されます。

ウィンドウを破棄すると、その上のウィジェットも破棄されます。ウィンドウ内の特定のウィジェットを破棄する場合は、それらの親(たとえば、ウィジェットがパックされているボックスまたはテーブル)を破棄します。それ以外の場合は、それらを1つずつ破棄する必要があります。

ほとんどの場合、明示的な破棄が必要なのはトップレベルウィジェット(ウィンドウ)のみです。これは、トップレベルを破棄すると、その子も破棄されるためです。

gtkでは、それが意図したものである場合、ウィジェットへのポインターを解放しません。Gtk関数はそれを適切に実行します。

私がもっと助けになることができるかどうか私に知らせてください...

于 2012-08-12T02:56:37.453 に答える