Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gauche-Tkで簡単GUIプログラミング

 Gauche-Tkで簡単GUIプログラミング

Minoru Natsutani

May 24, 2012
Tweet

More Decks by Minoru Natsutani

Other Decks in Technology

Transcript

  1. 自己紹介  なつたん  エンジニア歴  組込プログラマ 3年  FPGAでVerilog-HDL,

    VHDLプログラマ 10年  Tcl/Tk プログラマ 1年 ← Now !  Twitter id natsutan  Blog  なつたん http://natu.txt-nifty.com/  ぱたヘネ http://d.hatena.ne.jp/natsutan/
  2. 最近作ったLispアプリ  LispWorksを使ったオ セロゲーム  GUIはLispWorksに付 属のツールキット (CAPI)  2人の娘とあそぶ

     コマを片付けなくて良い。  コンピュータは制御する ものという概念を教える。 一番のメリット:新しいプリキュアにもすぐ対応できる
  3. Tkの紹介  GUIのToolkit  Binding が多い  Tcl/Tk  Perl/Tk

     Ruby/Tk  Tkinter (Python)  Ltk (Common Lisp)  Gauche-Tk (New!)
  4. Gauche-Tkの始め方  Head版のGaucheを入手  Ubuntu、Cygwinはドキュメント通りでbuildできます。  http://practical-scheme.net/gauche/download-j.html  Windows版はコンパイル済みの物を配布してます。 

    http://d.hatena.ne.jp/natsutan/20120410  Gauche-Tkの入手  https://github.com/shirok/Gauche-tk  Tcl/Tkの入手  Windows の人は Active Tclが便利 最新版の Gauche 0.9.3ならそのまま動きます。
  5. 4. Gauche-Tkのイベント処理 Gauche (gosh) Tcl/Tk (wish) ① Gauche-Tkの初期化 (tk-init ‘())

    の呼び出し ①’Tcl/Tkのイベントハンドラ登録 Proc gauche__tk__callback ②Callback付きWidgetsの登録 (tk-button '.b :command (^[] (print"Yeah!"))) ②’Tcl/TkのWidgetの登録 button .b ¥ –command gauche__tk__callback 1 ③Tcl/Tkでイベント発生 gauche__tk__callback 呼び出し ③’対応するλ式の実行 (print"Yeah!")
  6. 5. ボタンのイベントハンドラー (省略) ・Enterキーの処理 電卓に表示されている値をスタックに設定 ・+ - x / の処理

    押されたボタンに対応する関数を引数 にして、calcの呼び出し ・計算部分 op0 に電卓に表示されている値 op1 にスタックの値 (operator op1 op0) の評価 ・計算結果の処理 計算結果を電卓に表示 計算結果をスタックに設定
  7. これからやりたいこと  他Scheme処理系への移植  Guile2をターゲット  チュートリアル  Tkinter、Ltkも一緒に 

    他のTcl/Tkモジュールとの連携など(COMで Excel操作等)  単一exe化  作ったGUIプログラムを単一のexeにしたい。  非プログラマの人にも使ってもらいたい。  人は辞めてもexeは残る
  8. 単一exe化への道  Tcl/Tkでは実現できている。  Tclkit  Foo.tclをfoo.exeにしてくれる。  技術的なポイント 

    Tcl上に構成された仮想ファイルシステム(ここに必要な ファイルをすべて入れる)  スタートアップルーチン  他の言語も同じやり方で統一したい  Python、CLISP、Guile等
  9. おしまい  Gauche-Tkを使うとGUIアプリが簡単に作れる。  GaucheはHEAD版を使ってください  Windows版はインストーラ作りました  「Gauche-tk ぱたへね」で検索

     最新版 Gauche 0.9.3 を使ってください。  今日のサンプルはgithubに  https://github.com/natsutan/scm2exe/tree/master/target_sample/calc _scm