sockets - 无法使用Socket在PyGTK中正确嵌入窗口

标签 sockets pygtk

我正在关注PyGTK套接字上的教程,在该教程中,您将xterm窗口嵌入到另一个应用程序中。

我从这里下载文件:http://www.pygtk.org/pygtk2tutorial/examples/socket.py

当我按照以下命令运行它时:http://faq.pygtk.org/index.py?req=show&file=faq19.015.htp我得到两个不同的结果:

  • 在Ubuntu Karmic Koala(GTK 2.16)上,xterm看起来与套接字窗口分离,因此无法使用。
  • 在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?

    最佳答案

    乍一看,这似乎是xterm插件/套接字中的错误。我可以在Lucid上复制。如果已安装vim-gtk,则将cmd替换为:

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

    而且您的脚本可以很好地嵌入vim。

    关于sockets - 无法使用Socket在PyGTK中正确嵌入窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2882842/

    相关文章:

    linux - 什么是关于套接字的 z/TPF 系统?

    c - 限制与服务器不工作的最大连接数

    python - pyGTK 自动调整笔记本选项卡大小

    c - 在 Linux 中通过 RAW 套接字重新发送数据包

    c# - C#SocketAsyncEventArgs停止触发完成的事件

    python - PyGTK - 如何使用此表格布局来匹配背景图像?

    python - pygtk : saving the project file with suffix ".xyz"

    gtk - 在百老汇使用 GTK+

    python - PyGtk - 在特定行的 TreeView 中设置复选框不可见

    c - 当没有数据可读取时,Socket read() 会挂起一段时间