2010-05-21 38 views
1

我正在關注PyGTK套接字的教程,其中您將xterm窗口嵌入到另一個應用程序中。無法正確嵌入PyGTK中的窗口與套接字

我下載從這裏的文件:http://www.pygtk.org/pygtk2tutorial/examples/socket.py

當我運行下面這個:http://faq.pygtk.org/index.py?req=show&file=faq19.015.htp我得到兩個不同的結果:

  1. 在Ubuntu業報考拉(GTK 2.16)xterm的出現從分離套接字窗口,它不可用。
  2. 在Lucid Lynx(GTK 2.17)上,xterm窗口消失,套接字窗口似乎從xterm獲取背景,但沒有任何反應,當然也不可用。

我修改劇本是這樣的:

#!/usr/bin/python 
import pygtk 
pygtk.require('2.0') 
import gtk 
from subprocess import Popen 

def plugged_event(widget): 
    print "Inserted a widget" 

window = gtk.Window() 
window.connect("destroy", gtk.main_quit) 
window.show() 

socket = gtk.Socket() 
window.add(socket) 
socket.connect("plug-added", plugged_event) 
sock_id = str(socket.get_id()) 
cmd = ["xterm", "-into", sock_id] 
Popen(cmd) 
socket.show() 

gtk.main() 

一切似乎都做工精細,在xterm嵌入到插座窗口,但我不能用它的鍵盤和光標顯示爲空。這兩個版本的GTK都是一樣的。那麼,是否有人知道這是否可以修復,或者這是一個Bug?

回答

1

乍一看,這似乎是一個在xterm插件/插座中的錯誤。我可以在Lucid上重現。如果您安裝了vim-gtk,請將您的cmd替換爲:

cmd = ["gvim", "--socketid", sock_id] 

而且您的腳本可以正常運行以嵌入vim。

+0

對,它工作正常。但實際上問題出在rdesktop上。也許GTK不喜歡使用非GTK的東西。無論如何,謝謝你的提示。 – Eldelshell 2010-05-27 22:57:24

+0

我可以在沒有rdesktop的情況下重現您的bug。 – 2010-05-28 08:14:59