我正在处理一个旧的 Motif 应用程序,它需要加载和显示一长串条目(大约 1500 个)。它创建和管理xmFormWidgetClass
via的一个实例,XtVaCreateManagedWidget()
然后用一堆线性层次结构填充它xmFrameWidgetClass->xmFormWidgetClass->xmFormWidgetClass->xmPushButtonWidgetClass
。每个都PushButton
包含一个多行标签。当这个东西被填充时,它需要大量的 CPU,它花费在 X/Motif 库中进行一些几何计算。添加新按钮的速度很快就会下降。看起来里面使用了一个 O(N) 算法XtVaCreateManagedWidget()
。
如果我XtUnrealizeWidget()
在xmFormWidgetClass
. 条目以几乎恒定的速度添加,但我找不到显示我构建的整个内容的方法。XtRealizeWidget()
的原始实例xmFormWidgetClass
不会在窗口中呈现它。
我究竟做错了什么?有没有办法填充层次结构,然后计算几何图形并立即将其渲染到屏幕上?
重新设计应用程序是一个选项,但它是选项的最后手段类型。
任何让我留在 Motif 库中的建议都将受到高度赞赏!
问候,/谢尔盖