次のスニペットのようなソケットを使用してGtkアプリケーションにvimを埋め込むことを知っています
from gi.repository import Gtk
import subprocess
win=Gtk.Window()
win.set_default_size(600,800)
win.connect('delete-event', Gtk.main_quit)
editor = Gtk.Socket()
win.add(editor)
editor.connect("plug-removed", Gtk.main_quit)
subprocess.Popen(["/usr/bin/gvim", \
"--socketid", str(editor.get_id())])
win.show_all()
Gtk.main()
PySideでこれをどのように行うのですか?pysideのソケットへの参照が見つかりませんでした。
更新(JimPのアイデアを使用)
次のコードは、GvimインスタンスをPysideウィジェットに埋め込みます。ただし、gvimウィンドウは、親ウィンドウのフルサイズにするとサイズ変更されないようです。
import sys
from PySide import QtGui
from PySide import QtCore
app = QtGui.QApplication(sys.argv)
win = QtGui.QWidget()
win.resize(600, 800)
container = QtGui.QX11EmbedContainer(win)
container.show()
QtCore.QObject.connect(container,
QtCore.SIGNAL("clientClosed()"),
QtCore.QCoreApplication.instance().quit)
winId = container.winId()
process = QtCore.QProcess(container)
options = ["--socketid", str(winId)]
process.start("gvim", options)
win.show()
sys.exit(app.exec_())