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

 

posted @   Citrusliu  阅读(2637)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示