gpt4 book ai didi

c++ - 获取QPainter可见区域

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:35 26 4
gpt4 key购买 nike

我在 QScrollArea 中有一个所有者绘制的 QWidget,所以在绘制时,我只想绘制可见的部分。为此,我需要有 QPainter 可见区域的矩形。

唯一的候选者是 QPainter::viewport()QPainter::window()QPainter::clipBoundingRect(),所以我用这段代码来记录他们的输出:

    setMinimumHeight(3000);
setMinimumWidth(3000);
}
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
qDebug() << painter.viewport() << painter.window() << painter.clipBoundingRect();

然后我移动了水平和垂直滚动条,但是记录的输出很奇怪:

QRect(0,0 3000x3000) QRect(0,0 3000x3000) QRectF(-21,-21 0x0) 
QRect(0,0 3000x3000) QRect(0,0 3000x3000) QRectF(-1,-21 0x0)
QRect(0,0 3000x3000) QRect(0,0 3000x3000) QRectF(-1,-1 0x0)

如您所见,这些函数都没有提供实际的可见区域,我如何获得它?

最佳答案

我会试试这个:

...
setMinimumHeight(3000);
setMinimumWidth(3000);
}
void MyWidget::paintEvent(QPaintEvent *paintEvent)
{
qDebug() << paintEvent.rect();
...

参见 documentation了解详情。

关于c++ - 获取QPainter可见区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22259173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com