我知道嵌入VIM在Gtk application使用套接字像下面的代碼片段pyside嵌入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中的任何套接字。
UPDATE(服從跳使用的想法)
下面的代碼在Pyside控件嵌入一個GVIM實例。然而,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_())
有沒有辦法做到這一點?如果沒有套接字,任何其他方式也很好。我只需要在pyside應用程序中嵌入vim。 –
沒有答案並不意味着這是不可能的。只是沒有人看到你的問題知道如何去做。你還應該添加一個PySide的鏈接。另外GVim是GTK,我不確定它將如何在QT環境中工作。 – romainl
@romainl Ok .... gvim可能無法如您所說。我正在尋找一種方法將vim嵌入到pyside應用程序中。有了上面的代碼,我可以做一個Gtk應用程序。但對於如何在pyside應用程序中實現同樣的功能卻一無所知。關於鏈接,我不知道相關的代碼。那麼你提到哪個鏈接? –