0

X Motif の C クライアントがあり、Row Col ウィジェットのスクロールバーが期待どおりに表示されません。メイン ウィンドウ (トップレベル) にはフォームが追加されています。フォームの左側に上部アタッチメントとしてラベル ガジェットを追加します。次に、上部のアタッチメントとして [Quit] ボタンを右側に追加します。

次に、ScrolledWindow ウィジェットを追加し、フォームの左側に下部アタッチメントとしてアタッチします。高さ、幅、スクロールバーのポリシー値を次のように指定します。

sw = XtVaCreateManagedWidget("scrolled_w", xmScrolledWidgetWidgetClass, form,
       XmNwidth, 575,
       XmNheight,  120,
       XmNscrollingPolicy, XmAUTOMATIC,
       XmNscrollBarDisplayPolicy, XmAS_NEEDED, NULL);

sw ウィジェット内で、row col ウィジェットを作成し、それに多数のボタンを追加します。それらは正常に表示され、目的の方向を使用して進んでいます。

rowcol = XmCreateRowColumn(sw, "rowcolumn", NULL, 0);

 XtVaGetValues(rowcol, XmNforeground, &fg, XmNbackground, &bg,
               XmNborderColor, &bord, NULL);

XtVaSetValues(rowcol, XmNpacking, XmPACK_COLUMN,
                       XmNnumColumns, COLS,
                       XmNorientation, XmHORIZONTAL,
                       NULL);

問題は、メインの X ウィンドウのサイズを変更するときです。メイン ウィンドウのサイズによってスクロールされたウィンドウ全体が表示されない場合、スクロールバーを行列ウィンドウに適用する必要があると「期待」します。しかし、そうではありません。スクロール バーを表示させる唯一の方法は、ウィンドウを作成するために XmNwidth と XmNheight の値を調整することです。

なぜこれが起こっているのですか?

どうも。W.

4

0 に答える 0