【发布时间】:2020-08-03 08:54:48
【问题描述】:
我最近问了这个问题:Horizontally-Drawn RowColumn Class for Motif Library (C)?
在我之前的问题中,我无法让 xmRowColumnWidgetClass 水平(逐行)而不是垂直(逐列)绘制。玩了之后,想出了如何使用以下sn-p切换到水平绘图:
XmNorientation, XmHORIZONTAL,
因此,创建 xmRowColumnWidgetClass 实例的代码现在如下所示:
rowColumn = XtVaCreateManagedWidget("rowcolumn",
xmRowColumnWidgetClass,
parentWidget,
XmNnumColumns, 3,
XmNorientation, XmHORIZONTAL,
XmNpacking, XmPACK_COLUMN,
XmNspacing, 6,
NULL);
但是,我的新问题是,由于某种原因,XmNnumColumns 字段现在指的是行数,而不是实际的列数。在添加 XmNorientation, XmHORIZONTAL 部分之前,xmRowColumnWidgetClass 实例正在从左到右绘制对象,但它像预期的那样保持在 3 列。现在,它保持在 3 行,偶尔会创建一个我不想要的水平滚动条。我只想要垂直滚动。
所以我需要从上到下水平绘制 xmRowColumnWidgetClass 实例的子级,但我需要它每行最多放置 3 个,从而将其限制在一定的宽度内。
我尝试使用 XmNnumColumns 字段,但对更多孩子有用的东西对更少孩子不起作用,反之亦然。有时它变成 4 或 5 列而不是 3 列,有时它变成 2 列,而第 3 列完全为空。即使在尝试使用 XmNpacking, XmPACK_TIGHT 而不是 XmNpacking, XmPACK_COLUMN 和其他东西时,我也遇到了很多这样的问题。
如果有人能够找到 xmRowColumnWidgetClass 的官方文档并链接它,将不胜感激。
致任何熟悉这个库的人:
如何创建一个水平(逐行)绘制的 xmRowColumnWidgetClass 实例,同时保持一定数量的列?
它应该能够处理任意数量的子元素,并根据需要添加尽可能多的行,以保持恰好 3 列。
该库的另一组示例:
https://github.com/spartrekus/Motif-C-Examples
https://github.com/spartrekus/Motif-C-Examples/blob/master/rowcol.c
【问题讨论】:
-
这个问题与this other question重复,所以投票结束。