Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ qglwidget绘制图像大小调整失败_C++_Qt - Fatal编程技术网

C++ qglwidget绘制图像大小调整失败

C++ qglwidget绘制图像大小调整失败,c++,qt,C++,Qt,我使用以下代码在QGLWidget中显示QImage: class QGLCanvas : public QGLWidget { public: QGLCanvas(QWidget* parent = NULL); void setImage(const QImage& image); protected: void paintEvent(QPaintEvent*); private: QImage img; }; QGLCanvas::QGLCanva

我使用以下代码在QGLWidget中显示QImage:

class QGLCanvas : public QGLWidget
{
public:
    QGLCanvas(QWidget* parent = NULL);
    void setImage(const QImage& image);
protected:
    void paintEvent(QPaintEvent*);
private:
    QImage img;
};

QGLCanvas::QGLCanvas(QWidget* parent)
    : QGLWidget(parent)
{
}

void QGLCanvas::setImage(const QImage& image)
{
    img = image;
}

void QGLCanvas::paintEvent(QPaintEvent*)
{
    QPainter p(this);

    //Set the painter to use a smooth scaling algorithm.
    p.SetRenderHint(QPainter::SmoothPixmapTransform, 1);

    p.drawImage(this->rect(), img);
}
但是,当我调整主窗口的大小时,会导致QGLWidget调整大小。 实际绘制的图像未正确调整大小。 当窗口缩小时,绘制的图像缩小得更多,当窗口增大时,图像也会增大。
上面的代码有什么问题?

调整图像大小的关键不在于图像本身的缩小和放大吗?奥伊斯。这个画布实际上是一个视频播放器。但在我调整窗口大小后,绘制的图像并没有填满窗口小部件窗口。我认为p.drawImage(this->rect(),img);会使图像遮住窗户。试试这个