• 5670阅读
  • 3回复

[提问](已解决)如何达到:扩大控件鼠标响应区域? [复制链接]

上一主题 下一主题
离线liuxu_lx7
 
只看楼主 倒序阅读 楼主  发表于: 2012-11-23

想做:在鼠标在灰色区域内做的所有操作,都直接响应到CheckBox上。怎么做呢?

我希望它只由CheckBox自身来完成,而不是CheckBox还有个父控件。

离线jdwx

只看该作者 1楼 发表于: 2012-11-23
QCheckBox的文本呢?
设置QCheckBox的sizePolicy是其充满空间。
checkbox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线liuxu_lx7
只看该作者 2楼 发表于: 2012-11-23
回 1楼(jdwx) 的帖子
多谢,按照您的建议解决了问题。

根据我的具体需求,我重载了 QCheckBox::mousePressEvent(QMouseEvent* event)
在里面手工设置了ChechState (默认是必须点击方盒子才响应切换)。

至于QCheckBox文字, 我的需求就是不显示它,所以没有设置text。
离线liuxu_lx7
只看该作者 3楼 发表于: 2012-11-23
回 1楼(jdwx) 的帖子
有点碰运气的状况发生。 我无意间发现了QChechBox中的
virtual bool    hitButton(const QPoint &pos) const;是虚方法。那么我直接派生它,重写这个函数即可。

还是非常感谢您的帮助
快速回复
限100 字节
 
上一个 下一个