2015-12-21 54 views
0

在Maya/C++中我有一個MProgressWindow類引用。然而,窗口保持在0%(甚至有時保持空白)並且不會增加。我究竟做錯了什麼?MProgressWindow在Autodesk Maya API中不刷新

MProgressWindow P ; 
P.reserve() ; 
P.setProgressMin(0) ; 
P.setProgressMax(1000) ; 
P.startProgress() ; 

    for (int i = 0; i < 1000; i++) { 

     // do some work 
     if (i % 100 == 0) { 

      P.setProgressStatus("Progress "+ MString() + i + "/" + MString() + P.progressMax()) ; 
      P.advanceProgress(100) ; 
     } 
    } 
    P.endProgress() ; 

回答

0

Maya中只有一個進度窗口,所以您不必自己實例化它,它已經存在,而您將在對話框中放置一個窗口。這就是爲什麼你沒有看到任何事情發生,你實例化一個內存對象。試試這個。

附註 - 所有的方法都是靜態的,所以您可以通過基類的名字稱呼他們,並::

if (!MProgressWindow::.reserve()) 
    return ; 
MProgressWindow::setInterruptable (true) ; 
MProgressWindow::setProgressRange (0, 1000) ; 
P.setProgress (0) ; 
P.startProgress() ; 
for (int i =0 ; i<1000 ; i++) { 
    if (i != 0 && MProgressWindow::isCancelled()) 
     break ; 

    <do some work> 

    if (i % 100 == 0) { 
     MProgressWindow::setProgressStatus ("Progress " + MString() + i + "/" + MString() + P.progressMax()) ; 
     MProgressWindow::advanceProgress (100) ; 
    } 
} 
MProgressWindow::endProgress() ; 
+0

@LaurentCrivello,沒有幫助? – cyrille