强制在 contentsRect 而不是 rect 上绘制小部件

Posted

技术标签:

【中文标题】强制在 contentsRect 而不是 rect 上绘制小部件【英文标题】:Force widget painting on contentsRect instead of rect 【发布时间】:2014-08-12 09:10:42 【问题描述】:

我正在为小部件设置contentsMargins,并希望在contentsRect() 而不是rect() 上绘制小部件。我可以通过设置viewPortclipRegionpaintEvent 这样做,但我不想为每种类型的小部件实现paintEvent

是否可以在contentsRect 而不是rect 上强制绘制小部件?

我正在编写模拟创建者的模拟,并希望在每个视觉组件上绘制边框。就像在 Qt creator 中所做的一样 - 当我在设计窗口中选择小部件时,每个小部件上都有一个带有调整大小点的边框,我想要这样的边框。

【问题讨论】:

描述最初的问题?为什么需要这个? 我正在编写模拟创建者的模拟,并希望在每个视觉组件上绘制边框。就像在 Qt creator 中所做的一样 - 当我在设计窗口中选择小部件时,每个小部件上都有一个带有调整点大小的边框,我想要这样的边框。 我想从小部件矩形偏移一些,以便边框可见。 【参考方案1】:

解决了。我刚刚为每个可视组件创建了兄弟border 类,为其实现了movedresized 插槽,以便边框与小部件一起调整大小,并为每个小部件调用stackUnder,以便在每个小部件上绘制边框。感谢合作。

【讨论】:

以上是关于强制在 contentsRect 而不是 rect 上绘制小部件的主要内容,如果未能解决你的问题,请参考以下文章

RECTL 和 RECT 有啥区别?

强制 emacs 使用制表符而不是多个空格

为 Node 模块强制安装 yarn 而不是 npm install?

强制链接在 webview 而不是浏览器中打开

如何强制svg在z-index中的div元素后面

强制 CMake 寻找 x64 位库而不是 x32