我知道有几种方法可以使用 gtk.Socket 和 DBUS 在 GTK 中集成 gVIM:
但我想知道是否可以说有一个使用 tkinter 将额外的 GUI 组件添加到 gVIM GUI 的 python 插件?
问题是如何在这里解释两个主循环:
Python:有没有办法可以在后台运行 mainloop()
我的第一次尝试是(tkinter.vim):
python << endpython
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
endpython
甚至这个(tkinter-thread.vim):
python << endpython
import Tkinter
import threading
class MyTkApp(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def callback(self):
self.root.quit()
def run(self):
self.root=Tkinter.Tk()
self.root.protocol("WM_DELETE_WINDOW", self.callback)
self.s = Tkinter.StringVar()
self.s.set('Foo')
l = Tkinter.Label(self.root,textvariable=self.s)
l.pack()
self.root.mainloop()
app = MyTkApp()
print 'now can continue running code while mainloop runs'
endpython
一旦您尝试输入内容,它们都会挂起 gVIM GUI。
有没有其他方法可以使用其他 GUI 组件(窗口/工具栏,...)来扩展 gVIM GUI?