2011-07-15 26 views
2

我正在處理一箇舊的Motif應用程序需要加載和顯示一個長長的條目列表(1500左右)。它通過XtVaCreateManagedWidget()創建和管理xmFormWidgetClass的一個實例,然後用一堆線性層次結構填充xmFrameWidgetClass-> xmFormWidgetClass-> xmFormWidgetClass-> xmPushButtonWidgetClass。每個PushButton都包含一個多行標籤。當這個東西被填充時,需要很多CPU,它花費在X/Motif庫中進行一些幾何計算。新按鈕的添加速度很快降低。看起來好像在XtVaCreateManagedWidget()中使用了O(N)算法。在Motif中構建按鈕小部件的長卷列表的正確方法是什麼?

如果我在xmFormWidgetClass的原始實例上執行XtUnrealizeWidget(),情況會好得多。參賽作品以幾乎不變的速度增加,但是我找不到展示我製作的全部作品的方式。 xmFormWidgetClass的原始實例的XtRealizeWidget()不會將其呈現在窗口中。

我在做什麼錯?有沒有辦法填充層次結構,然後計算幾何圖形並一次渲染到屏幕上?

重新設計應用程序是一個選項,但它是選項上的最後一種度假類型。

任何意見,讓我在Motif圖書館將高度讚賞!

問候, /謝爾蓋

回答

1

嘗試XtRealizeWidget後調用XtManageChild

+0

謝謝你的回答!然而,當我在父窗口小部件上這樣做時,我之前並未實現它,它仍然不會在屏幕上呈現... – evolvah

相關問題