xmRowColumnWidgetClass

xmRowColumnWidgetClass

我最近问了这个问题:Horizontally-Drawn RowColumn Class for Motif Library (C)?
在我的上一个问题中,我在使xmRowColumnWidgetClass进行水平(逐行)而不是垂直(逐列)绘制时遇到麻烦。在玩了之后,用以下代码片段弄清楚了如何切换到水平绘图:

XmNorientation, XmHORIZONTAL,
因此,创建xmRowColumnWidgetClass实例的代码现在如下所示:
rowColumn = XtVaCreateManagedWidget("rowcolumn",
            xmRowColumnWidgetClass,
            parentWidget,
            XmNnumColumns, 3,
            XmNorientation, XmHORIZONTAL,
            XmNpacking, XmPACK_COLUMN,
            XmNspacing, 6,
            NULL);
但是,我的新问题是,由于某种原因,XmNnumColumns字段现在引用的是行数,而不是实际的列数。在添加XmNorientation, XmHORIZONTAL部分之前,xmRowColumnWidgetClass实例从左到右绘制了对象,但是像预期的那样停留在3列中。现在,它停留在三行,偶尔创建一个我不需要的水平滚动条。我只想要垂直滚动。
因此,我需要从顶部到底部水平绘制xmRowColumnWidgetClass实例的子级,但是我需要它最多每行仅放置3个,从而将其限制在一定的宽度内。
我尝试过使用XmNnumColumns字段,但是对更多 child 有用的东西对更少 child 有用,反之亦然。有时它使它变成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

最佳答案

XmRowColumn旨在实现顶部菜单栏和所有其他菜单类...您正在搜索类似小部件的网格,因此必须使用XmForm读取the related question for that.

关于c++ - 母题库(C)的列包装RowColumn类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61329506/

10-11 23:17