PySide2 更新介面卡頓

2021-10-07 13:47:19 字數 1649 閱讀 1188

在主線程裡面就乙個 for 迴圈,然後程式就出現卡頓,**如下:

n_machine =

len(data)

# 機器數量

# 假資料

if data ==

or data is

none

:for i in

range(1

, n_machine +1)

: data[

'%d'

% i]=(

'故障**'

+str

(i),

'控制**'

+str

(i),

'鎖狀態'

+str

(i),

'實時角度'

+str

(i))

# 首先清理**

table_model = qstandarditemmodel(

)table_model.clear(

)# 填充資料

for machine_number in

range(1

, n_machine +1)

: i, j = self.get_row_col(machine_number)

item0 = qstandarditem(

str(data[machine_number][0

])) table_model.setitem(i, j, qstandarditem(

"%d號***故障**"

%(machine_number)))

table_model.setitem(i, j +

1, item0)

item1 = qstandarditem(

str(data[machine_number][1

])) table_model.setitem(i +

1, j, qstandarditem(

"%d號***控制**"

%(machine_number)))

table_model.setitem(i +

1, j +

1, item1)

item2 = qstandarditem(

str(data[machine_number][2

])) table_model.setitem(i +

2, j, qstandarditem(

"%d號***鎖狀態"

%(machine_number)))

table_model.setitem(i +

2, j +

1, item2)

item3 = qstandarditem(

str(data[machine_number][3

])) table_model.setitem(i +

3, j, qstandarditem(

"%d號***實時角度"

%(machine_number)))

table_model.setitem(i +

3, j +

1, item3)

解決辦法:

把這個耗時的操作放在子執行緒中,子執行緒完成資料處理後,呼叫主線程更新介面函式,完成介面更新,這樣介面才不會出現卡頓。

Android介面卡頓

前段時間在開發專案時搞了一下過渡繪製的問題,乙個比較複雜的介面剛開發出來,過渡繪製95 紅,調了半天後,基本只有5 的紅,效果不錯,準備找個時間總結一下,今天剛好看到網上以為大神發了一篇文章,總結的不錯,順手牽過來啦,哈哈哈 使用者對卡頓的感知,主要 於介面的重新整理.而介面的效能主要是依賴於裝置的...

介面卡頓優化

在螢幕上乙個畫素點出現多次繪製 如背景重疊繪製 優化做法 在繪製時例項化物件 ondraw 手機不能進入休眠狀態 資源忘記 handler使用不當導致記憶體洩漏 無用的屬性和資源 可優化的布局 沒有使用sparsearray代替hashmap 主線程中占用cpu時間過長的函式,特別關注io操作 檔案...

介面卡模式2

介面卡模式 物件的介面卡模式 當希望將乙個物件 source 轉換為s滿足乙個介面 targetable 的新物件 adapter 時,建立乙個類 adapter 實現介面,該類持有乙個原物件 source 並在實現方法中呼叫例項source的方法 public class adapter impl...