Я создал простой пример, который закрасит фон рабочего стола белым. Легко заставить его нарисовать изображение.
class DesktopWidget : public QWidget
{
Q_OBJECT
public:
DesktopWidget()
{
setAttribute(Qt::WA_X11NetWmWindowTypeDesktop);
resize(QApplication::desktop()->size());
}
protected:
void paintEvent(QPaintEvent*)
{
QPainter painter(this);
painter.fillRect(geometry(), Qt::white);
}
};
Проблема этого решения заключается в том, что оно полностью закрашивает все, что окружение вашего рабочего стола рисует в фоновом режиме (включая значки, плазмоиды, ...).
Если вы просто хотите программно установить новое фоновое изображение, я бы проверил, есть ли в вашем DE API для этого.