QTableView删除自定义代理功能

Qt中并没有可以直接删除QTableView中的某个代理的功能,但我们可以使用QTableView原本默认的代理来替换后期我们自定义的代理,以此来实现删除自定义代理功能

QAbstractItemDelegate* defaultdelegate = table->itemDelegateForRow(0);
int rows = charModel->rowCount();
for(int loop = 1; loop < rows ;loop ++)
{
 	QAbstractItemDelegate* nowdelegate = table->itemDelegateForRow(loop);
 	showComboxItemDelegate* showdelegate = static_cast<showComboxItemDelegate*>(nowdelegate);
  	if(showdelegate)            //表示当前的代理是自定义的代理
  	{
       table->setItemDelegateForRow(loop,defaultdelegate);
  	}
}
 

table是我的表格QTableView对象,charModel是table的model对象,我的表格中第一行是确定不会添加自定义代理的,所以就获取第一行的代理作为默认代理。

showComboxItemDelegate* showdelegate = static_cast<showComboxItemDelegate*>(nowdelegate);这一句代码就是要将获取到的本行的代理类型强制转化为我自定的代理类类型showComboxItemDelegate,如果转化之后的showdelegate值不为0,则说明本行的代理就是自定义代理类型,若转化后的对象showdelegate值为0则表示该行代理不是自定义代理类型(showComboxItemDelegate)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值