【发布时间】:2010-06-07 18:37:43
【问题描述】:
我正在尝试编写一个简单的程序来充当我在 Qt 中的桌面背景,除了将其设置为桌面小部件外,我已使其一切正常。我不知道该怎么做,我不介意使用 XLib 或 Qt 来做这件事,但如果有人有一些建议,我会很高兴。
【问题讨论】:
我正在尝试编写一个简单的程序来充当我在 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。
【讨论】: