Sunday, 23 November 2008

Tk vs wx

最近は、Java ばっかり書いているので、割とどうでも良いんですが...

Python だと、tkinter と wxPythonの二種類の選択肢があります。もっと選択肢はあるので、二つに限る必要はないんだが...

 wxPerl, Perl/Tk
 http://mixi.jp/view_diary.pl?id=126511871&owner_id=2510

にも書いたんだが、wx ってのは、C++のwxWidgetをそのまま持って来たもので、
  /Developer/Examples/wxWidgets/wxPython/samples/simple/simple.py
とか
  /Developer/Examples/Python/tkinter/matt/window-creation-simple.py
とか見れば、まぁ、だいたい見当がつくわけなんだが... (OS XのDeveloperだけど、どうせ、Tk/wxとかは、Windows Userには関係ないし。Windows User はプログラミングなんかしないし、したって、VC++/VisualBasic でしょ?)

Fontの設定一つ取っても、
 wx
   text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
 Tk
   Label(fred, text="Here's a new window", font = '7x14')

ってな感じ。ま、気にならない人は気にならないだろう。特に、VC++ ユーザは前者の方を好むだろうと想像します。

 http://wiki.wxpython.org/Choosing%20wxPython%20over%20Tkinter
 http://www.shido.info/py/python5.html

とかも参考になるかも。

大雑把に言うと、GUI生成とかwidgetに頼って、その部分のコードを書かないつもりならwx、とにかく手早く短く小さいものを書きたいならTkってな感じか。

まぁ、僕は、そこまで凝ったGUIにするなら、Java/Objective Cに移行しちゃうし、wxの汚いコードに触りたくないので、wx は使わないです。

データを使ってanimationしたい時とか、demoを作るとか言う時には、Perl/Tkという感じだな。tkinterでも良いんだが、手に馴染んでいるのはPerlなので。良く使うGUI widget作りたいなら、今なら、JavaScriptだろうけど、だいたい command line tool 作っちゃうからな。

No comments: