2014-12-07 32 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