Motif库(C)的列包装RowColumn类吗?

问题描述 投票:0回答:1

我最近问了这个问题: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字段,但对于更多孩子而言,适用于较少孩子的事情并不能为更少孩子使用,反之亦然。有时它使它变成4或5列而不是3列,有时使它变成2列而第3列完全为空。即使尝试使用XmNpacking, XmPACK_TIGHT而不是XmNpacking, XmPACK_COLUMN和其他内容,我也遇到了很多类似的问题。

如果有人能够找到xmRowColumnWidgetClass的正式文档并将其链接,将不胜感激。


致熟悉此库的任何人:

我如何创建一个xmRowColumnWidgetClass实例,以水平(逐行)绘制,同时将其保持在一定数量的列上?

它应该能够处理任意数量的子代,并根据需要添加任意多的行,以使其精确地保持为3列。


[该库的另一组示例:https://github.com/spartrekus/Motif-C-Exampleshttps://github.com/spartrekus/Motif-C-Examples/blob/master/rowcol.c

c++ c linux drawing motif
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.