Qt 取消window标题栏事件失效

这篇文章应该是昨天的 , 昨天布局一个游戏代练平台的项目,因为界面的美观需要隐藏window自带的标题栏,重新自定义标题栏. 我想这种事情很多人都做过,现在大多数项目中都会为了用户体验而重新定义界面的布局. 当我去掉标题栏的时候( Qt5 隐藏标题栏 setWindowFlag( Qt::FrameLessWIndowHint) ,编译运行,运行起来,标题栏隐藏了 , 但是出现了另外一个问题,我的界面上的所有的控件的效果都没了 , 比如说 ,按钮点击效果失效了.还有QTableWidget 点击选中的呈现的行颜色也不见了 , 甚至于 QComboBox 失去了他原来的功能,更有甚至不能点击功能性的丧失.当时就特别的郁闷.
当时我的第一反应就是事件传递的原因,因为我在该项目中的大量的使用了”事件捕捉”就是我们常说的事件过滤,当我把所有的事件过滤全部注释掉的时候还是不可以.无奈之后走了特别多的弯路,已经束手无策的时候,准备重新将代码重新复制新建 Qt类重新实现( 因为当时我已经写demo测试过去掉标题栏之后的QWidget中的组件是没有任何影响的,已经确定就是我的代码的问题),重新实现后是好的 , 事件也接受传递.当我布局完成之后,原来的错误又重新出现了.然后我又重新打破布局.事件传输又正常了.
各位看官们,已经猜到了 ,是布局的问题,最后得出结论, 当Qt Creator 实现布局,把 边距全部设置为零,你的界面组件全部覆盖window组件时,然后又把标题栏去掉, 事件就是受到影响.解决办法就是,去掉标题栏之后留一点点的边距.

纯文字 描述;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值