3

这是Linux。我创建了一个窗口,我想将其背景颜色更改为绿色。这就是我的代码的样子:

Window xwin = XCreateSimpleWindow(dis, 
                                  DefaultRootWindow(dis), 
                                  0, 0, 
                                  500, 300, 
                                  0,
                                  WhitePixel(dis, 0),
                                  WhitePixel(dis, 0));
GC gc = XCreateGC(dis, xwin, 0, NULL);
XColor color;
Colormap colormap;
char green[] = "#00FF00";

colormap = DefaultColormap(dis, 0);
XParseColor(dis, colormap, green, &color);
XAllocColor(dis, colormap, &color);

XSetBackground(dis, gc, color.pixel);

XMapWindow(dis, xwin);
XFlush(dis);

我看到的窗户是白色的。是否可以使用 X11 在 Linux 中更改窗口背景颜色?谢谢!

4

1 回答 1

6

如果您只想要绿色背景,则 XCreateSimpleWindow 的最后一个参数是背景颜色,所以...

  XColor color;
  Colormap colormap;
  char green[] = "#00FF00";

  colormap = DefaultColormap(dis, 0);
  XParseColor(dis, colormap, green, &color);
  XAllocColor(dis, colormap, &color);


  Window xwin = XCreateSimpleWindow(dis, 
                   DefaultRootWindow(dis), 
                   0, 0, 
                   500, 300, 
                   0,
                   WhitePixel(dis, 0),
                   color.pixel);

XMapWindow(dis, xwin);
XFlush(dis);
于 2013-01-06T12:31:06.123 回答