为什么这儿报错?怎么解决?

img


Qpainter painter(this);这句为什么报错?跟着b站视频学的,头文件也声明了,搜不到解决办法

void paintEvent(QPaintEvent *)
修改为
void MainScene::paintEvent(QPaintEvent *)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7503040
  • 除此之外, 这篇博客: ✎Qt-doc—QPainter绘图系统&坐标系统中的 走样绘制(Aliased Painting) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    绘制时,像素渲染由QPainter::Antialiasing render hint控制。

    RenderHint枚举用于指定QPainter的标志,这些标志可能会被任何给定引擎所遵循,也可能不会被任何给定的引擎所遵循。QPainter::Antialiasing值指示引擎应尽可能对基本体的边缘进行抗锯齿,即使用不同的颜色强度平滑边缘。

    但默认情况下,painter是走样的(aliased),这时的规则是:当使用1像素宽的笔进行渲染时,像素将被渲染到数学定义的点的右下方。例如:(QPen:1像素宽)

    当使用像素为偶数的笔进行渲染时,像素将围绕数学定义的点对称渲染;而使用像素为奇数的笔渲染时,多余的像素将渲染到数学点的右侧和下方,就像在一个像素的情况下一样。具体示例请参见下面的QRectF图。

    请注意,由于历史原因,对于QRect(而非QRectF),QRect::right()QRect::bottom()函数的返回值偏离了矩形的真实右下角。

    QRect的right()函数返回left()+width()-1,bottom()函数则返回top()+height()-1。图中右下角的绿色点显示了这些函数的返回坐标。

    我们建议你只使用QRectF:QRectF类使用浮点坐标在平面中定义一个矩形,以确保准确性(QRect使用整数坐标),QRectF::right()和QRectF::bottom()函数确实会返回 [真实的] 右下角

    或者,使用QRect,应用x()+width()y()+height()来查找右下角,并避免使用right()和bottom()函数


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^