gpt4 book ai didi

c - 奇怪的 XLib 错误; XDrawString 仅在 sleep 后有效

转载 作者:太空宇宙 更新时间:2023-11-04 04:48:50 24 4
gpt4 key购买 nike

所以我有以下代码,不确定我是否添加了太多/太少,但它仍然存在于 conext 中。

Window root = XCreateWindow(proc->display,    
RootWindow(proc->display, screen),
0, 0, width + 500, height + 500, 0,
CopyFromParent, InputOutput,
CopyFromParent, CWEventMask, &attr);

XSetWindowBackground(proc->display, root, WhitePixel(proc->display, screen));

XFlush(proc->display);
XMapWindow(proc->display, root);

Window avaliableDevices = XCreateSimpleWindow(proc->display, root, 10, 50,
220, 650, 5, BlackPixel(proc->display, screen),
WhitePixel(proc->display, screen));

XFlush(proc->display);
XMapWindow(proc->display, avaliableDevices);

sleep(1);
XDrawString(proc->display, root, DefaultGC(proc->display, DefaultScreen(proc->display))
, 20, 20, "hello", strlen("hello"));

Window networkedDevices = XCreateSimpleWindow(proc->display, root, /* display, parent */
900, 50, /* x, y: the window manager will place the window elsewhere */
220, 650, /* width, height */
5, BlackPixel(proc->display, screen), /* border width & colour, unless you have a window manager */
WhitePixel(proc->display, screen)); /* background colour */

XDrawString(proc->display, root, DefaultGC(proc->display, DefaultScreen(proc->display))
, 920, 40, "NETWORKED DEVICES", strlen("NETWORKED DEVICES"));

我遇到的问题是,如果没有 sleep(1),字符串将不会绘制在屏幕上,对于为什么有任何想法有点困惑?

我第一次调用它时,它需要 sleep ,但第二次它很好:/

最佳答案

这似乎是this 的另一种变体。和 this .

事件似乎不再正确刷新, sleep 为事件提供了时间。

要以更受控的方式进行操作,请等待公开事件。

sleep 替换为:

XSelectInput(proc->display, root, ExposureMask);
XEvent ev;
XNextEvent(proc->display, &ev);

关于c - 奇怪的 XLib 错误; XDrawString 仅在 sleep 后有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18098678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com