可以在StackedWidget的paintEvent()函数中使用QPainter来主动绘制背景图。以下是一个示例代码:
void MyStackedWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
// 绘制背景图片
QPixmap pixmap(":/path/to/image.jpg");
painter.drawPixmap(rect(), pixmap);
}
这个示例代码将会为StackedWidget绘制一个背景图片。在paintEvent()函数中,我们首先创建了一个QPainter对象,并设置了抗锯齿属性。然后,我们使用drawPixmap()方法来绘制背景图片。
需要注意的是,在每次切换页面时,都会触发StackedWidget的paintEvent()函数。因此,如果希望在切换页面时更新背景图片,可以通过重新调用update()函数来触发重绘。
void MyMainWindow::on_pushButton_clicked()
{
// 切换到下一个页面
ui->stackedWidget->setCurrentIndex(1);
// 重新绘制背景图片
ui->stackedWidget->update();
}
这样,在切换页面后,就会自动触发重绘事件,并调用MyStackedWidget的paintEvent()函数来绘制新的背景图了。