QTableWidgetItem设置为不可选中、不可编辑等状态

    在使用QTableWidget显示图片、文字等信息的时候,有时会遇到这样一种情况:图片或者文字没有填满一整行或一整列。余下的几项是空白的单元格,白占着位置,最关键的是这些Item还可以被选中,在选中项被设成高亮显示的时候就十分的难看,显得很不和谐。如何设置这些空白的单元格,使其看起来就像背景的白板一样呢?

    下面提供解决办法:

1、首先空白的单元格要填入一个QTableWidgetItem,这是必要的,因为我们要针对某一个Item操作,而不是QTableWidget。

2、通过设置flag,设置Item的属性:使其不可用或者不可选中、不可编辑。

Qt提供了一个函数(setFlags(Qt::ItemFlags))和一些枚举值来设置这些属性。

使用方法如下:

QTableWidgetItem *item = new QTableWidgetItem();
tabWidget->setItem(2,0,item);
item->setFlags(item->flags() & ~Qt::ItemIsEnabled & ~Qt::ItemIsSelectable);

上面用到的两个枚举中:~Qt::ItemIsEnabled可以保证单击该Item时不会被选中,但是在启用Ctrl + A时,全选操作会导致Item被选中。~Qt::ItemIsSelectable的使用可以保证全选状态下也不会被选中,但是在单独使用时出现了虚线框,没有真正实现“不存在”的效果。所以必须两个同用。

  • 11
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值