<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi, VTKers,<div><br></div><div>I am looking for a sample code to create a callback function to interact with QT's progress bar. In ITK, I usually do it in this way.</div><div><br></div><div>// The call back function</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span style="color: #b830a1">class</span> ShowProgressObject</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(184, 48, 161); ">public<span style="color: #000000">:</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> ShowProgressObject()</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> m_Process = <span style="color: #b830a1">NULL</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> m_progressBar = <span style="color: #b830a1">NULL</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> m_accumulatedProgress = <span style="color: #2a35d6">0</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> m_proportion = <span style="color: #2a35d6">1</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">void</span> SetProcessObject( itk::<span style="color: #6f41a8">ProcessObject</span>* <span style="color: #6f41a8">o</span> ) { m_Process = <span style="color: #6f41a8">o</span>; }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">void</span> SetProgressBar( <span style="color: #6f41a8">QProgressBar</span>* <span style="color: #6f41a8">p</span> ) { m_progressBar = <span style="color: #6f41a8">p</span>; }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">void</span> SetAccumulatedProgress( <span style="color: #b830a1">double</span> ap ) { m_accumulatedProgress = ap; }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">void</span> SetProportion( <span style="color: #b830a1">double</span> <span style="color: #6f41a8">p</span> ) { m_proportion = <span style="color: #6f41a8">p</span>; }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">void</span> ShowProgress()</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">if</span>( m_progressBar )</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> m_progressBar-><span style="color: #3d2380">setValue</span>( m_accumulatedProgress + m_Process-><span style="color: #3d2380">GetProgress</span>() * <span style="color: #2a35d6">100</span> * m_proportion );</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #77482c">qApp</span>-><span style="color: #3d2380">processEvents</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> itk::<span style="color: #6f41a8">ProcessObject</span>::<span style="color: #6f41a8">Pointer</span> m_Process;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #6f41a8">QProgressBar</span>* m_progressBar;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">double</span> m_accumulatedProgress;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> <span style="color: #b830a1">double</span> m_proportion;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">};</div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">// register it with itk filter/io</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(111, 65, 168); "><span style="color: #000000">itk::</span>SimpleMemberCommand<span style="color: #000000"><</span><span style="color: #518187">ShowProgressObject</span><span style="color: #000000">>::</span>Pointer<span style="color: #000000"> command;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> command = itk::<span style="color: #6f41a8">SimpleMemberCommand</span><<span style="color: #518187">ShowProgressObject</span>>::<span style="color: #3d2380">New</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>command-><span style="color: #3d2380">SetCallbackFunction</span>(&progress,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> &<span style="color: #518187">ShowProgressObject</span>::ShowProgress);</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre">        </span><br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>itkMetaImageReader-><span style="color: #3d2380">SetFileName</span>( <span style="color: #518187">inputFileName</span>.<span style="color: #3d2380">c_str</span>() );</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>itkMetaImageReader-><span style="color: #3d2380">AddObserver</span>( itk::<span style="color: #3d2380">ProgressEvent</span>(), command );</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "> itkMetaImageReader-><span style="color: #3d2380">Update</span>();</div><div><br></div><div>May I know how I can implement the above similarly with vtkMetaImageReader in VTK+QT application?</div><div><br></div><div>Thank you very much.</div><div><br></div><div>Zhimin WANG, Ph.D.</div><div>Institute for Infocomm Research </div><div>A-STAR, Singapore</div><div> </div></div>
<DIV>
Institute for Infocomm Research disclaimer: "This email is confidential and may be privileged. If you are not the intended recipient, please delete it and notify us immediately. Please do not copy or use it for any purpose, or disclose its contents to any other person. Thank you."<BR>
</DIV></body></html>