QTreewidget的 item Checked 编辑


想使用QTreewidget也像qt designer那里一样,做个属性编辑器

单纯设置

fontBoldItem->setCheckState(1,Qt::Unchecked);

运行时只有点击 复选框才能修改 checkbox的选中状态

但是qt designer就不是这个样子,无论单击复选框或者item其它位置都可以修改checkbox的选中状态

我跟踪了一下,mousePressEvent和mouseReleaseEvent,单击复选框和item其他位置,区别主要在于pos位置

所以一个比较偷懒的想法就是在这两个事件中的修改event的pos位置,修正为复选框的所在位置范围内,经测试没有问题。

但是这种做法总感觉不地道,也有点名不正言不顺。


鉴于一般的qtreewidget的文本框和下拉框、微调框都是使用的itemwidget

所以也想到了这个,那就在其上放置个QCheckbox吧,

简单测试一下不行,只有点击复选框才会变化,后来想到的是设置文本,应该是文本长度决定QCheckbox的长度吧

果不其然,但是有不想让人看见文本,干脆将文本都有空格或者\t替换,结果很ok


在此更深刻理解,最简单的才是最有效的

就如上次QLineEdit的那样,开始我想的是在label上放置QLineEdit和QLabel,QLabel上放图片,而没有想到使用QLineEdit,直接在其上放置图片,这就涉及到很严重的问题,我想设置QLineEdit的样式时,每次都得通过外层的QLabel实现,即要重载外层Qlabel的所有样式方法,在其中调用QLineEdit的样式方法(因为在对外部而言,只有外层的Qlabel是可见的,不想也不情愿将内部的QLineEdit开放,这样总感觉,不像是一个独立的部件)


其实使用QCheckbox也是刚才想起来并测试成功的,昨天晚上想写,但是网速不给力,没有发表成功,昨天的版本就不是这样的

而是 在QLabel上放一个QCheckbox,其实跟最初版本LineEdit的编辑是同样的思路,同样的错误,如果那样的话,还要对点击QCheckbox或者QLabel的其他地方,区别处理,他们之间的关联,check状态的统一等等。


再次 验证 :最简单的才是最有效的!  I believe

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值