在XLib / Qt中将窗口设置为桌面

时间:2010-06-07 18:37:43

标签: c++ qt xlib

我正在尝试编写一个简单的程序作为我在Qt中的桌面背景,除了使它成为桌面小工具之外,我已经完成了所有工作。我不知道如何做到这一点,我不介意使用XLib或Qt这样做,但如果有人有一些建议我会很高兴。

1 个答案:

答案 0 :(得分:2)

我创建了一个简单的示例,将桌面背景填充为白色。它可以很容易地绘制图像。

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);
        }
};

此解决方案的问题在于它完全描绘了桌面环境在后台绘制的所有内容(包括图标,plasmoids等)。

如果只是想要以编程方式设置新的背景图片,我会检查你的DE是否有API。