【问题标题】:Making a window a desktop in XLib/Qt在 XLib/Qt 中使窗口成为桌面
【发布时间】:2010-06-07 18:37:43
【问题描述】:

我正在尝试编写一个简单的程序来充当我在 Qt 中的桌面背景,除了将其设置为桌面小部件外,我已使其一切正常。我不知道该怎么做,我不介意使用 XLib 或 Qt 来做这件事,但如果有人有一些建议,我会很高兴。

【问题讨论】:

    标签: c++ qt xlib


    【解决方案1】:

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

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多