3

gtk.Socket と DBUS を使用して gVIM を GTK に統合するには、いくつかの方法があることを知っています。

しかし、tkinter を使用して追加の GUI コンポーネントを gVIM GUI に追加する python プラグインがあると言えるかどうか疑問に思っていましたか?

問題は、2 つのメインループをここで説明する方法です。

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 がハングします。

gVIM GUI を他の GUI コンポーネント (ウィンドウ/ツールバーなど) で拡張する他の方法はありますか?

4

0 に答える 0