我最近问了这个问题: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/