Qt - QTableWidget表格操作


表格中數據清理

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM