2014-12-07 31 views
1

我有两个程序,首先得到一个XWindow并获得其xid,然后在第二个程序中,我想在该窗口上执行一些操作(例如更改大小,位置等)(xid作为XWindow的)。我使用Python3的ctypes。事实是,XResizeWindow(display, xid, 320, 240)返回..yes..1,但当然窗口的几何形状是一样的以前。更改XWindow几何

xid = 2675429 #windowid.. 
X = cdll.LoadLibrary("libX11.so.6") 

display = X.XOpenDisplay(None) 
if display == 0: 
    sys.exit("Cannot open display.") 

X.XResizeWindow(display, xid, 320, 240) 
X.XCloseDisplay(display) 
+1

关闭前添加XFlush()? – 2014-12-07 22:32:44

+0

哇,现在有用。谢谢!顺便说一句,我会发布这个答案。 – poxip 2014-12-07 23:41:49

回答

1
正如

所述@Andrey Sidorov我必须调用XFlush()显示关闭之前。现在工作。

+1

xlib缓冲传出请求,所以如果没有xflush,你基本上连接到X,将一些字节添加到缓冲区并退出(不发送任何内容)。对于一些请求(如PolyPoint)而不是添加额外的请求xlib将数据(点)附加到前一个请求的点数组,从而节省一些开销 – 2014-12-08 08:00:14