私は古いMotifアプリケーションを扱っています。これは、長いリストのエントリ(約1500)を読み込んで表示する必要があります。 XtVaCreateManagedWidget()を介してxmFormWidgetClassのインスタンスを作成して管理し、一連の線形階層xmFrameWidgetClass-> xmFormWidgetClass-> xmFormWidgetClass-> xmPushButtonWidgetClassを使用してデータを埋め込みます。各プッシュボタンには複数行ラベルが含まれています。これがポピュレートされると、多くのCPUが必要になります。これは、X/Motifライブラリの内部で幾何学計算を実行するのに費やします。新しいボタンが追加されるペースは、非常に迅速に低下します。 XtVaCreateManagedWidget()内でO(N)アルゴリズムが使用されているようです。Motifでボタンウィジェットの長いスクロールリストを作成する正しい方法は何ですか?
xmFormWidgetClassの元のインスタンスでXtUnrealizeWidget()を実行すると、はるかに良くなります。エントリーはほぼ一定のスピードで追加されていますが、私が構築したすべてのものを表示する方法は見つけられません。 xmFormWidgetClassの元のインスタンスのXtRealizeWidget()はウィンドウ内でそれをレンダリングしません。
私は間違っていますか?階層を作成し、ジオメトリを計算して一度に画面にレンダリングする方法はありますか?
アプリケーションの再設計はオプションですが、オプションの最後の手段です。
Motifライブラリの中に私を留めてくれるアドバイスは高く評価されます!
よろしく、 /セルゲイ
ありがとうございました!しかし、私が前に気づいていない親ウィジェットでこれを行うと、まだ画面上にレンダリングされません... – evolvah