使用C ++更改Xlib窗口背景颜色

时间:2013-01-05 21:17:30

标签: colors background window x11 xlib

这是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中更改窗口背景颜色?谢谢!

1 个答案:

答案 0 :(得分:3)

如果你只想要一个绿色背景,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);