我正在尝试编写一个简单的程序来充当我在 Qt 中的桌面背景,除了使它成为桌面小部件之外,我已经使它一切正常。我不知道如何做到这一点,我不介意使用 XLib 或 Qt 来做到这一点,但如果有人有一些建议,我会很高兴。
问问题
928 次
1 回答
3
我创建了一个简单的示例,将桌面背景填充为白色。让它绘制图像很容易。
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。
于 2010-06-09T15:01:07.040 回答