作者uranusjr (←這人是超級笨蛋)
看板C_and_CPP
標題Re: [問題] Qt thread
時間Wed Apr 6 02:05:28 2011
※ 引述《PeterKiller (Peter)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Ubuntu 10.10 gcc
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Qt
: 問題(Question): 各位版上的高手好 最近在看學習筆記學Qt
: 學到Qthread時 發現他給的範例不能照常執行 來爬文發現在Qthread中
: 不能有QWidget的物件,需要用signal和slut實做。
是 slot...可以去查字典 slut 的意思, 拜託這個誤字很糟糕XD
: 現在遇到的困難是 我寫了一個遊戲開了兩條Qthread,其中第一條是遊戲邏輯,
: 第二條則是讓他一直刷新遊戲畫面,所以我在第二條Qthread中的run只是一直發signal
: 讓我的main thread(GUI thread)去執行update()這個函式..但是我編譯完執行後就發現
: 他整個程式都block住沒辦法動了,想請問各為有什麼解決的辦法?
因為整個執行隊列都被你無窮迴圈裡發出的訊號佔滿了吧...
在畫完一次後用 QThread::msleep() (或 usleep 或 sleep) 延遲一下
: code 在此:
: main : http://codepad.org/mwJ3FXRn
: QWidget object :http://codepad.org/Ellr2zk0
: http://codepad.org/FNvMKyL9
: graph thread : http://codepad.org/TR3aeDvK
: 謝謝
然後你程式碼裡 include 了不少怪東西...
Implementation 部份(.cpp 檔)不用 include QtGui
然後與其用 printf 不如用 std::cout, 更不如用 QDebug, 既然你都在寫 Qt 了
用 std::string 和 pthread 也是很詭異...
--
"問おう、貴方が私のマスターか?"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.81.146
※ 編輯: uranusjr 來自: 114.32.81.146 (04/06 02:14)
推 legnaleurc:slut 有笑點 XD 我都沒發現 04/06 02:30
推 PeterKiller:感謝..會有pthread是因為原本用pthread寫XD 04/06 02:30
→ loveme00835:樓上要搞清楚 Framework 跟 Library的 差別喔~ 04/06 11:11
推 xatier:slut我笑了XD 04/06 12:01
→ PeterKiller:XD 我沒注意到耶 04/07 01:53