QT QImage的宽高设置是否有要求?

我把宽高设置成(350,350)就可以显示。设置成(360,360),(370,370)(400,400)就无法显示。

```QImage image1(400,400,QImage::Format_ARGB32);
QPainter m_painter2(&image1);
m_painter2.drawPixmap(0,0,400,400,QPixmap(":/new/prefix1/image/map3.jpg"));

后面是通过信号与槽将绘制的图片发送给主窗口。刚学的QT...

我试了下,并没有要求,但一般设置为图像的大小,可以保证不失真,给你一个参考代码吧:


    // 绘制出一个image
    QImage image(1920, 1080, QImage::Format_ARGB32);
    QPixmap pixmap("G:\\Monica2.jpg");
    QPainter painter(&image);
    painter.drawPixmap(0,0,1920,1080, pixmap);

    // 展示绘制出的image
    setAutoFillBackground(true); 
    QPalette pal(palette());
    // QPalette:Window是背景色:A general background color.
    // QBrush(image.scaled(size(), Qt::IgnoreAspectRatio,Qt::SmoothTransformation)):用于生成适配窗口大小的图片作为QBrush
    pal.setBrush(QPalette::Window, QBrush(image.scaled(size(), Qt::IgnoreAspectRatio,
        Qt::SmoothTransformation)));
    setPalette(pal);


有问题可以讨论~