我想在Qt QFrame中绘制,但QFrame会有边框。据我所知,paintEvent接收一个与整个frameRect相关联的QPainter,因此我将不得不抵消边框的绘制操作。它是否正确?有没有办法让QPainter已经与小部件的内部相关联,没有(大小可变)边框?
答案 0 :(得分:3)
你必须考虑contentsRect contentsRect() - >返回小部件边距内的区域。使用contensRect()的返回值rect,您可以限制在rect内部绘制任何内容。
答案 1 :(得分:1)
这样做的一种方法是在QFrame中嵌入一个QWidget,将它放在一个简单的QVBoxLayout布局或没有边距的QStackedLayout布局中,然后绘制QWidget。但是,如果你简单地抵消了你的绘画,你可能会获得更好的表现。