[英]List of visible items from QTreeView
獲取QTreeView顯示的當前可見項目列表的最佳方法是什么? 是否可以在更改時收到通知?
我的模型的數據可以異步更改應用程序(數據來自硬件寄存器)。 刷新數據可能很慢,所以我想在專用線程中定期刷新。 我不想刷新所有項目,因為效率非常低,只有可見的項目。
我知道這一點 ,但在我的情況下,數據異步更改,所以我只有在調用setData()時才能刷新項目。
忽略視圖並專注於模型可能更容易。
您可以在簡單的預先刷新緩存上對其進行建模:.data()返回上一個已知值,但也會安排更新。 由於視圖將調用model.data(index)
dataChanged()
信號)索引都可見 這可以形成一個循環來輪詢可見項。 當單元格不可見時,視圖將停止調用.data(),終止循環。 您還應該考慮到data()
可以在此循環之外調用,因此沒有任何中斷。
model.data(cell, Qt::DisplayRole)
:
dataChanged()
model.data()
- 循環回到步驟2,或者單元格不可見,序列在此處結束。 這將滿足您連續/異步輪詢可見模型項的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.