在 QScrollArea 的边缘绘画

Posted

技术标签:

【中文标题】在 QScrollArea 的边缘绘画【英文标题】:Painting on the margins of QScrollArea 【发布时间】:2014-02-11 12:35:14 【问题描述】:

我想在 Photoshop 中绘制类似 x\y 轴比例的东西,但使用 QScrollArea 有一个很好的属性:

QAbstractScrollArea::setViewportMargins(20,20,0,0) 

它工作正常 - 顶部和左侧有空白区域并将点指向 (0,0) 并以指定的偏移量绘制它。 但我不能在这个地方画画。 我试过了

painter.drawLine(-10,0,-10,height())

但它什么也没做。那么如何在这个边距空间上绘制一些东西呢?

【问题讨论】:

【参考方案1】:

您正在视口上绘画,这不起作用。您需要在边距区域中放置一个小部件并在该小部件的paintEvent 内进行绘制。

【讨论】:

是的,确实,我需要在视口上绘画。我可以毫无问题地做到这一点,但在它的区域(0,0,width(),height))。但我想让这个边缘区域无法访问。可能是改变画家的起源......我会尝试你的建议,但我认为这将是调整视口大小或缩放的问题...... @folibis 正如我所说,要在边缘区域绘画,您不能在视口上绘画!视口不包括边距!

以上是关于在 QScrollArea 的边缘绘画的主要内容,如果未能解决你的问题,请参考以下文章

使用 QScrollArea 和 QQuickWidget

边缘计算 | 在移动设备上部署深度学习模型的思路与注意点 ⛵

js中scroll滚动相关

获取 QPainter 的可见区域

js中 offset /client /scroll总结

7.3 QScrollArea滚动视图