【问题标题】:Column-Packed RowColumn Class for Motif Library (C)?用于 Motif 库(C)的 Column-Packed RowColumn 类?
【发布时间】: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

【问题讨论】:

标签: c++ c linux drawing motif


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    简而言之:试试WtTable widget

    更多解释如下:

    当您选择水平配置时,XmRowColumn 关于“列”变为“行”的行为非常不幸。为此目的使用XmForm 而不是XmRowColumn 的替代方法是可行的,但是它需要手动设置子约束,即使那样,您也很可能无法实现@ 中实现的自动调整大小987654326@.

    通过今天的搜索,我找到了WtTable widget,它可以很好地满足我的目的。它“几乎”和XmRowColumn 一样自动,并且不需要手动设置任何约束。我在我的 Motif 代码中尝试过,效果很好。

    但是请注意,我说“几乎”是自动的。 “几乎”是因为需要指定列数和行数,并且需要为每个子小部件指定列数和行数。但是,所有这些都可以自动化:您可以创建一个方便的函数,在内部管理列和行的计数器,这样您就可以将一个小部件传递给该函数并自动将其放入它所属的单元格中:您甚至可以创建该函数需要时在WtTable 中创建一个新行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多