表格中數據清理:
1、不要使用removeRow()函數了,每次只能清空一行數據(列頭會被清理)
2、使用clear()函數,清空整個tableWidget(行頭和列頭會被清理)
3、使用clearContent()函數,清空tableWidget內容(不清理行頭和列頭)
表格中數據修改觸發自定義操作:
1、QTableWidget表格中的內容被修改時會觸發itemChanged或cellChanged信號,
如果槽函數中對QTableWidget的單元格執行修改操作(如修改單元格內數據,修改單元格字體顏色等)
都會再次觸發itemChanged或cellChanged信號然后去執行槽函數,會陷入無限循環。
解決辦法:
1、阻塞方法blockSignals
# 進入槽函數 self.tableWidget.blockSignals(True) # 進入阻塞模式,該對象發送的信號都會被阻塞 '''執行相關槽函數程序''' self.tableWidget.blockSignals(False) # 退出阻塞模式,重新接受該對象發送的信號 # 退出槽函數
2、斷開信號槽方法disconnect
# 進入槽函數:self.xxxxx self.tableWidget.itemChanged.disconnect(self.xxxxx) # 斷開信號槽 '''執行相關槽函數程序''' self.tableWidget.itemChanged.connect(self.xxxxx) # 連接信號槽 # 退出槽函數:self.xxxxx