[問題] QT 讀取檔案時顯示狀態

看板C_and_CPP (C/C++)作者 (大頭)時間15年前 (2011/07/01 15:25), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
我正在試寫一隻程式 讀取txt檔案 計算裡面有幾行 檔案有28MB左右 總行數是28.4萬 所以執行會需要1~2秒的時間 我希望在執行時 有一個label能夠顯示 "檔案分析中請稍等..."的字樣 關鍵程式碼是 analyzePushButton = new QPushButton(codec->toUnicode("分析")); connect(analyzePushButton,SIGNAL(clicked()),this,SLOT(analyze())); void AnalyzeTool::analyze() { saveLabel->setText(codec->toUnicode("檔案分析中請稍等...")); QFile in(pathLineEdit->text()); QTextStream inputContent(&in); int count = 0; if(in.open(QFile::ReadOnly)) { do{ inputContent.readLine(); count++; }while(!inputContent.atEnd()); } saveLabel->setText(QString::number(count)); } 當我click的時候他連 "檔案分析中請稍等..." 都沒顯示 直接顯示count的結果- - 純粹想要理解一下是為什麼?? 後來解決的方法是利用pressed() SIGNAL 連接到另外一個slot function 裡面再去做saveLabel->setText(codec->toUnicode("檔案分析中請稍等...")); 就解決了 -- 如果需要看整份code 如下 main.cpp http://codepad.org/G44GLID4 analyze.h http://codepad.org/mPAgVolm analyze.cpp http://codepad.org/F53FqqFo -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.142.150 ※ 編輯: IsMe1086 來自: 124.11.142.150 (07/01 15:32)

07/01 19:42, , 1F
在setText後呼叫saveLabel->repaint或update 試試看
07/01 19:42, 1F

07/01 20:11, , 2F
repaint沒問題! 但是update不行 感謝樓上~~
07/01 20:11, 2F

07/01 20:18, , 3F
看來連繼承的function也要多翻翻才行 -___-
07/01 20:18, 3F

07/01 20:26, , 4F
Label的文字是由paintEvent管理顯示 知道這個就容易了
07/01 20:26, 4F
文章代碼(AID): #1E3NPjQx (C_and_CPP)
文章代碼(AID): #1E3NPjQx (C_and_CPP)