慎用QGraphicsDropShadowEffect绘制阴影,会导致部分控件一直resizeEvent、重新绘制

我的程序还在创作中,代码还只是UI部分,数据都是固定的,也没有定时刷新之类代码,样式也只是使用了一小部分。有一天我发现我在QTableWidget添加自定义控件的时候,效应特别慢,而自定义控件只是在鼠标进入或离开时绘制边框而已,但它需要等一段时间才绘制,长的等几秒钟,拖动窗口明细的看得出卡顿,而我用QGraphicsDropShadowEffect来给我的无边框程序绘制边框。

调试的时候,QTableWidget居然会触发QTimerEvent,而正常情况下是不会触发这个事件,它还会触发了resizeEvent事件,而我的并没有调整界面大小,也没有拖动软件,特别是我把鼠标移到一个插入到表格的自定义控件的按钮的时候,这两个事件触发的更频繁,当我把鼠标移开之后,事件就触发的没那么频繁,但效应速度还是不正常。而那两个事件甚至连还处于QStackedWidget其他页的QTableWidget也会被触发。

把setGraphicsEffect的代码注释掉就不会出现哪些问题了,目前还没有发现如何规避这些问题。只能自己去绘制阴影边框

下图是事件处理函数和事件过滤函数打印信息。
慎用QGraphicsDropShadowEffect绘制阴影,会导致部分控件一直resizeEvent、重新绘制_第1张图片

你可能感兴趣的:(qt,c++)