有圖的水銀

根據 yungyuc有圖的水銀這篇,裝了 ActiveTCL 之後,終於把 hgk 在 Windows 上給跑了起來,不過我一直很好奇的是,Windows 版的 Python installer 預設會安裝 tcl/tk 的 module Tkinter 跟相關的 dll,難道不能用這個來跑 hgk 嗎?

原本是想把 hgk 一行一行搬到 python,不過這樣太慢了,後來發現有 Tkinter.Tk.eval 可以用

剛剛做了一下實驗,證明以下 code 可以執行:

# run-hgk.py
#a71d5d;">import sys
#a71d5d;">import Tkinter

# read hgk file
hgk #a71d5d;">= ''.join(#62a35c;">open('hgk', 'r').readlines())
tk #a71d5d;">= Tkinter.Tk()
tk.eval('set argv [list ' #a71d5d;">+ ' '.join(sys.argv[#0086b3;">1:]) #a71d5d;">+ ']')
tk.eval('set env(HG) "hg"')
#a71d5d;">try:
    tk.eval(hgk)
    tk.mainloop()
#a71d5d;">except Tkinter.TclError, e:
    #a71d5d;">print e

不過要真的可以用,還要改一下路徑的處理跟環境變數的取得 😛

接下來,想要真的把 hgk port 到 python,現在的 hgk 幾乎是 copynpaste gitk,連 help menu 裡面都沒改過,程式裡面還參考到 GIT_DIR 環境變數… Orz


已發佈

分類:

,

作者:

標籤: