QTableWidget刪除行出錯

2021-08-08 21:38:58 字數 697 閱讀 5901

在呼叫removerow刪除qtablewidget的行時總會遇到乙個問題,說tablewidget已經是isempty(),不能再刪除了,但其實還有一行沒刪除,可是只要刪除那最後的一行就出錯.**大致是這個樣子的

1.這裡是刪除的**,感覺應該沒有問題的

for (int i = tablerowcount; i >= 0; --i)

2. 前面給table建立了乙個訊號槽鏈結

connect(ui.classfication_table, signal(itemselectionchanged()), this, slot(onselecttablerowchanged()));

每次改變所選中的item,都會觸發這個槽函式

3. 槽函式

void maketemplate::onselecttablerowchanged()

後來我發現,每次我在執行removerow()進行刪除後,如果刪除的中的item在刪除前是選中狀態,當刪除這一行後,會執行onselecttablerowchanged這個槽函式.並且將這個item上一行的item重新作為選中狀態.當我執行完remove最後一行後,此時table已經沒有item了,也沒有行,但是仍然執行這個函式,但是items已經是空的了,所以在向下執行的時候會出錯

解決方法就是在進入這個函式的時候新增乙個判斷,看table是否為空,或items是否為空.

改變QTableWidget 行高

方法一 int wide m pfieldtable columnwidth 0 int nrow m pfieldtable rowcount for int i 0 i 必須得setcolumnwidth和setrowheight一起使用才能改變行高,這兩個函式在qtableview中。方法二 ...

mysql刪除行 MySQL出現無法刪除行記錄

今天mysql在刪除一張innodb型別的表時,出現錯誤error no.1451 解決方法 這可能是mysql在innodb中設定了foreign key關聯,造成無法更新或刪除資料。可以通過設定foreign key checks變數來避免這種情況。set foreign key checks ...

QTableWidget 搜尋實現

文章目錄 隱藏 新增乙個 qlineedit,連線它的 textchanged 事件,在 textchanged 槽函式中編寫方法,方法內容如下。ui tbwgtrelation setrowhidden i,browhidden 核心 此方式是設定行隱藏和顯示具體根據第二個引數void relat...