我有一个 X Motif 的 C 客户端,它没有按预期显示 Row Col 小部件的滚动条。主窗口(顶层)添加了一个表单。在表单中,我在左侧添加了一个标签小工具作为顶部附件。然后,我在右侧添加一个退出按钮作为顶部附件。
然后我添加一个 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。