【目的】
- 通過 QProcess 跑一個外部命令,將執行進度放在 QProgressBar 上。 最後執行結果放在QTextEdit。
- 例如下面命令
$ tracepath -n www.google.com
【程式】
- 研究中。
【替代方案】
- 先用QProcess 跑一個外部命令,若外部程式無法回傳進度。先設一個 timer,程式在執行的時候,將主視窗先disable。並顯示一個類似 (http://ajaxload.info/) 的圖型。並顯示執行時間(elapsed time/Expired) 每秒去檢查是否作完,作完提早結束。若 timer 還未作完,殺掉被喚起的程式並回傳失敗。
- 若是寫入/讀出檔案的話,按照讀取/寫入的 raw-date 比對整個檔案大小就知道進行進度百分比。就可以傳到 QProgressBar 。
- 採用 QSplashScreen。這是用在顯示程式時的載入進度。
【參考】
- How to display the copy progress of QFile on QProgressBar
http://www.qtforum.org/article/24548/how-to-display-the-copy-progress-of-qfile-on-qprogressbar.html - progress bar and cancel button
http://www.qtforum.org/article/32171/progress-bar-and-cancel-button.html - QT中调用外部程序:QProcess的使用
http://blog.csdn.net/WaderChan/archive/2009/05/19/4199913.aspx