X窗口始终为空白

时间:2013-05-30 11:37:04

标签: x11

我正在学习X窗口编程并尝试一个演示程序:

http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/simple-drawing.c

这是使用Xlib库进行基本图形编程的一个示例代码;该教程的链接是http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html

问题是我的计算机上面的演示总是空白。该程序应该在屏幕上显示一些基本形状,但在我的计算机中,窗口只是完全白色。我正在使用Ubuntu 13.04.I通过gcc simple-drawing.c编译上面的代码-o draw -lX11

关于Xcreatewindow()的另一个问题:我通过设置x = 200,y = 200来指定XCreatewindow的起源(显示,父,x,y,宽度,高度,border_width,深度,类,视觉,值掩码,属性) ,但窗口仍然显示在我的显示器的左上角。 XCreatewindow()中的x和y是指什么?

1 个答案:

答案 0 :(得分:1)

这与this one

的问题相同

由于某种原因XFlushXSync没有按照您的预期行事。

解决方案是等待expose事件然后绘制形状。所以

之后
  /* allocate a new GC (graphics context) for drawing in the window. */
  gc = create_gc(display, win, 0);
  XSync(display, False);

在主要添加

  /* catch expose events */
  XSelectInput(display, win, ExposureMask);

  /* wait for the expose event */
  XEvent ev;
  XNextEvent(display, &ev);

对于您的其他问题,创建窗口中的X和Y是屏幕左上角的起始坐标(原点),而不是窗口放置的位置,由窗口管理器确定。