C++ qglwidget绘制图像大小调整失败
我使用以下代码在QGLWidget中显示QImage: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
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);会使图像遮住窗户。试试这个