利用VTK顯示檔案讀取進度模態對話方塊

2021-04-22 01:47:35 字數 1147 閱讀 3802

以下內容實現用vtk讀取dicom資料,並通過模態對話方塊顯示檔案讀取進度。

要同時顯示對話方塊並且讀入資料,可以使用多執行緒程式設計。可參考

具體步驟如下:

//建立執行緒

this->m_htread=createthread(null,0,readfiles,(lpvoid)&p,0,null);

//顯示模態對話方塊

readprogress.domodal();

//等待執行緒結束

while (wait_timeout == waitforsingleobject(m_htread, 0))

//結束執行緒

closehandle(m_htread);

而定義的執行緒函式如下:

dword winapi readfiles(lpvoid lpparameter)

return

true;

}

值得注意的是,普通的i/o檔案操作,可以在操作未完成時返回乙個false,因此讀取普通檔案的多執行緒可以這樣寫:

if (!readfile(hsecfile, buffer, 2048, &dwreadbytenum, null))

vtk的讀取dicom操作主要在update()這個函式中。我們沒法用上述方法做多執行緒,但是vtk提供了事件響應函式,可以繼承vtkcommand這個類,過載execute函式,通過vtkdicomimagereader的getprogress()函式,得到當前進度(0~1之間的數),並將當前進度傳送到對話方塊。

void creadcommand::execute(vtkobject* caller, unsigned long eventid, void * calldata)

同時在vtkdicomimagereader例項化的物件中,要增加observer,**如下:

creadcommand *mo1 = creadcommand::new();

mo1->readprogress=&readprogress;

reader.getreader()->addobserver(

vtkcommand::progressevent,mo1);

linux cat 顯示檔案內容

cat 選項 檔案 cat命令的用途是連線檔案或標準輸入並列印。這個命令常用來顯示檔案內容,或者將幾個檔案連線起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。1.一次顯示整個檔案 cat filename 2.從鍵盤建立乙個檔案 cat filename只能建立新檔案,不能編輯已有...

Linux 檔案顯示檔案命令

檢視檔案內容的命令 cat 由第一行開始顯示內容,並將所有內容輸出 tac 從最後一行倒序顯示內容,並將所有內容輸出 more 根據視窗大小,一頁一頁的現實檔案內容 less 和more類似,但其優點可以往前翻頁,而且進行可以搜尋字元 head 只顯示頭幾行 tail 只顯示最後幾行 nl 類似於c...

Linux head 顯示檔案的開頭

head 與tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想當然爾就是看檔案的結尾。1 命令格式 head 引數 檔案 2 命令功能 head 用來顯示檔案的開頭至標準輸出中 預設head 命令列印其相應檔案的...