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