我的Qt表單有一張表和一些標籤。表格內容和標籤內容變化很快,有時似乎表格被卡住了。但是,當我最小化表單並再次最大化時,會顯示最新值。有關解決此問題的任何建議。刷新Qt表單 - 似乎卡住了
回答
我的建議是chaning項目後,使用repaint()
:
通過調用的paintEvent直接重繪控件()立即, 除非更新被禁用或小部件是隱藏的。
如果需要立即重新繪製,我們建議只使用repaint(),對於動畫過程中的 示例。在幾乎所有情況下,update()更好地爲 ,因爲它允許Qt優化速度並使閃爍最小化。
您可以將信號連接到該小部件,而不是直接呼叫,因爲repaint()
是一個插槽。
不要每秒更新用戶界面數千次。您在顯示屏上看到的圖像通常每秒只更新60次。如果你有CRT顯示器,刷新頻率可能是50Hz - 120Hz,但在大多數情況下,刷新頻率是60Hz。
絕對不需要更新標籤內容的頻率比顯示器的刷新頻率更高。內容從未被看見。但更新用戶界面小部件非常昂貴,因此預計該窗口似乎被凍結。你正在做很多不必要的工作。
每次數據更改時都不要更新小部件。使用timer來更新小部件。計時器間隔爲16毫秒錶示小部件每秒更新約60次。但即使更慢的更新率也可能足夠好。
我的水晶球建議您使用QTableWidget
的自定義模型,但您的自定義模型不會正確發出dataChanged
信號。您的帖子中沒有足夠的數據 - 您使用的是哪種「表格」,以及如何向其提供數據?
我使用'setItem'向其提供數據,然後使用'setText'改變/更新數據 – Rajeshwar
完全同意Roku的答案。沒有必要以更快的速度更新用戶界面,然後用戶可以讀取它。我懷疑每秒更多2-3次的東西對更新有任何意義..好吧,如果您使用網格或其他視覺事物中的進度條等智能代表,您可以每秒增加5-10次..但仍然不是每秒執行1000次更新的網格點
- 1. Bower 0.8.5似乎卡住了
- 2. Azure消息似乎卡住了
- 3. Aerospike Java異步庫似乎卡住了
- 4. AppVeyor:上傳到PyPI似乎卡住了
- 5. memcpy似乎被卡住
- 6. NOHUP似乎被卡住
- 7. Java上的PL SQL似乎被卡住
- 8. 「模擬位置」似乎卡住
- 9. 數據流似乎被卡住
- 10. currentColor似乎在Safari中「卡住」
- 11. jQuery加載()似乎卡住/掛起
- 12. 數據流似乎被卡住
- 13. RSpec - 測試似乎被卡住
- 14. 卡住了鏈表
- 15. Qt - qmake -project,爲什麼卡住了?
- 16. QProcess卡住了
- 17. Qt :: BackgroundRole似乎被忽略了
- 18. Qt似乎使用了很多線程
- 19. JavaFX新版卡住了
- 20. 調用函數卡住了,但監視器似乎被釋放,怎麼樣?
- 21. 似乎記住的大表格$ _POST
- 22. openDatabase卡住了
- 23. VB.NET - 表格卡住了
- 24. 卡住了Caesar.c
- 25. WebClient卡住了?
- 26. 爲什麼「git svn fetch」命令似乎卡住了,什麼都不做?
- 27. Facebook頁面刷新後PHP-SDK似乎失去了用戶ID
- 28. UIRefreshControl:刷新時卡住的UITableView
- 29. cygwin上的bash腳本 - 似乎在連續命令之間卡住了。
- 30. 在Silverlight中刷新似乎文本框
「快速」有多快?每秒一次?每秒10次?每秒1000000次? – 2013-04-17 14:21:22
每秒數千次 – Rajeshwar