完全機能の Part コンポーネント作成方法をもう説明しましたが、Part が実際どのように表示され/示されるかについてはまだ説明されていません。 Part は単純なQWidgetsではなく、ここで解説が必要となるCORBAオブジェクトです。これは、OPFrameクラスです。OPFrameは、事実上QWidgetですが、QtのQXEmbedとの論理上は、Part ウィジェットウインドウを埋め込んでいます。 OPFrame使い方はとても簡単で、たいていはこのコードは次のようになります:
1 ... アプリケーションウィジェットの一部 ... 2 myFrame = new OPFrame( the_parent_widget ); 3 myFrame->attach( a_reference_to_the_part_we_want_to_embed ); 4 myFrame->show(); |
上のサンプルに加えて、Part をdetach()することができます。 これは最後に行うべきでしょう。 ちょっとopFrame.hを見てください。これはドキュメントになっています。
最後にOPFrameについて知っておかなければならない重要なことは、このクラスが Part 保持に関係するKOMリファレンス(KOMVar変数を使用しています。)を内部的に使用するということです。 これは、OPFrameを使用する際に、2つの可能性があるということです。
ウィジェット/オブジェクトの埋め込みがKOMリファレンスを使用し、更にパートにリファレンスを保持するならば、その際 Part のライフサイクルに影響を及ぼす2つのオブジェクトが存在します。 Part の KOM リファレンスカウンタを明記/消去するとそれを増加/減少させるOPFrameがある一方で、埋め込みウィジェット/オブジェクトがあるのです。 ですから Part の消去に関して、そのパートへの KOM リファレンスがいつ開放するかを確実に知っておいてください。
組み込みウィジェット/オブジェクトがKOMを使用しないなら、Part を消去する際自動的に破棄されるということを知っておかなければなりません。というのは通常OPFrameは、Part への KOM リファレンスを持っている単なるオブジェクトにすぎないからです。 したがって KOM カウンタはゼロになると、オブジェクトの完全な破棄を示します。