2010-05-21 61 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