如何重新缩放图像并将其设置为QWidget?

时间:2012-01-10 14:50:24

标签: c++ qt meego

QPixmap pic("../image.jpg");

setAutoFillBackground(true);
QPalette palette;
QPixmap scaled=pic.scaled ( 800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation );

palette.setBrush(QPalette::Window, QBrush(scaled));

//this->setPalette(palette);
QWidget *w= new QWidget(this);
w->setGeometry(0,0,800,480);
w->show();
w->setPalette(palette); 

但是小部件没有显示任何图像。

2 个答案:

答案 0 :(得分:5)

您是否只是想在窗口小部件中显示缩放图像?我不认为在画笔中设置图像然后在调色板中设置画笔是正确的方法。

您可以使用QLabel在窗口小部件中显示图像。像这样:

QPixmap pic("../image.png");
QPixmap scaled=pic.scaled ( 800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation );

QLabel *label = new QLabel(this);
label->setPixmap(scaled);

答案 1 :(得分:-1)

您正在设置面板之前显示窗口小部件。尝试先设置调色板。

如果这样做没有帮助,请尝试指定完整的文件路径。