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.