Я пытаюсь записать простую программу для действия как мое настольное образование в QT, я заставил все это хорошо работать кроме создания его Настольный Виджет. Я понятия не имею о том, как сделать это, я не возражаю использовать XLib или QT для того, чтобы сделать это, но если бы у кого-либо есть некоторые предложения, я был бы очень счастлив.
Я создал простой пример, который будет заливать фон рабочего стола белым цветом. Его легко заставить рисовать изображение.
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 для этого.