2015-12-21 24 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