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