使用X11访问自定义XResources颜色

问题描述 投票:2回答:1

我正在使用X11库启动我的第一个程序。首先,我只是尝试从xrdb中定义的用户颜色方案中访问颜色。例如,在我的~/.Xresources中,我有以下内容:

*color8:     #073642
*color0:     #002b36

我还验证了运行xrdb -query时会显示这些颜色。到目前为止,在我的C程序中,我有:

#include <X11/Xlib.h>
#include <X11/Xresource.h>

int main (int argc, char *argv[])
{
    Display* display = XOpenDisplay (0);
    XrmDatabase xrdb = XrmGetDatabase (display);
    XrmValue v;
    Colormap cmap = DefaultColormap (display, DefaultScreen (display));
    XColor screenColor;
    XColor exactColor;

    if (! XAllocNamedColor (display, cmap "color0", &screenColor, &exactColor))
        printf ("ERROR\n");

   printf ("%u %u %u\n", screenColor.red, screenColor.green, screenColor.blue);

   return 0;
}

但是这个错误。那我想念什么呢?有没有更好的方法来做我想做的事情?谢谢!

c x11 xlib
1个回答
0
投票

[当您要访问在xrdb加载的Xresource文件中设置的参数时,需要

xrdb = XrmGetStringDatabase(XResourceManagerString(display));

而不是XrmGetDatabase(...)。希望能够(稍后)解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.