Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gauche-Tkで簡単GUIプログラミング
Search
Minoru Natsutani
May 24, 2012
Technology
1.7k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gauche-Tkで簡単GUIプログラミング
Minoru Natsutani
May 24, 2012
More Decks by Minoru Natsutani
See All by Minoru Natsutani
放熱勉強会資料
natsutan
0
26
グラフの書き方勉強会
natsutan
0
100
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
82
動き検出勉強会資料
natsutan
0
56
WindowsでGenesisに挑戦した話
natsutan
0
540
辛い仕事をプリキュアで乗り切りHack
natsutan
0
95
論文読み勉強会 RoboGen
natsutan
0
380
プログラミング写経のすすめ
natsutan
0
1.5k
ロボット模倣学習勉強会
natsutan
0
500
Other Decks in Technology
See All in Technology
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
160
AI_Dev_Day_製造業領域でのAI活用から見た活用の罠と成功に導く実践知.pdf
kintotechdev
0
160
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
480
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
510
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.5k
データと地図で読む 大井町の「かわるもの、かわらないもの」
yoshiyama_hana
0
140
副作用のある Lambda でも Lambda Power Tuning は使えるのか / lambda-power-tuning-side-effects
koukihosaka
1
140
JAWS_ICEBERG_BASECAMP
iqbocchi
2
110
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
780
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
280
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
740
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
970
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
510
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Done Done
chrislema
186
16k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
500
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
740
Visualization
eitanlees
152
17k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
640
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
410
Transcript
Gauche-Tkで簡単GUIプログラミング Kyotolisp TT 2012/05/12 なつたん
アジェンダ 自己紹介 Gauche-Tkの紹介 サンプルアプリケーション これからやりたい事
アジェンダ 自己紹介 Gauche-Tkの紹介 サンプルアプリケーション これからやりたい事
自己紹介 なつたん エンジニア歴 組込プログラマ 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/
最近作ったLispアプリ LispWorksを使ったオ セロゲーム GUIはLispWorksに付 属のツールキット (CAPI) 2人の娘とあそぶ
コマを片付けなくて良い。 コンピュータは制御する ものという概念を教える。 一番のメリット:新しいプリキュアにもすぐ対応できる
アジェンダ 自己紹介 Gauche-Tkの紹介 サンプルアプリケーション これからやりたい事
Gauche-Tkの紹介 Gauche-Tk Shiroさんが作ってくれたGauche用Tk binding Gaucheから、Tkが呼び出せる。 Tcl/Tkを知っていれば、GaucheでGUIアプリが簡単に
書ける。 知らないと面倒です。
Tkの紹介 GUIのToolkit Binding が多い Tcl/Tk Perl/Tk
Ruby/Tk Tkinter (Python) Ltk (Common Lisp) Gauche-Tk (New!)
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ならそのまま動きます。
最初のサンプル
アジェンダ 自己紹介 Gauche-Tkの紹介 サンプルアプリケーション これからやりたい事
簡単なスタック型の電卓 スタックは1段 入力はRPN 整数演算のみ ソースはgithubに https://github.com/natsutan/scm2exe/tree/master/target_sample/calc_scm
1. Tk初期化 Gauche-Tkのimport Tcl/Tkインタープリタへのパス /usr/local/bin/wish等 *tk-debug* を#tにすると、 wishとの通信が表示される。 Wishの起動
2. Windowの作成 アイコンの変更
3. ボタンの作成 ボタン幅の計算 ボタン 追加 Callback関数
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!")
5. ボタンのイベントハンドラー (省略) ・Enterキーの処理 電卓に表示されている値をスタックに設定 ・+ - x / の処理
押されたボタンに対応する関数を引数 にして、calcの呼び出し ・計算部分 op0 に電卓に表示されている値 op1 にスタックの値 (operator op1 op0) の評価 ・計算結果の処理 計算結果を電卓に表示 計算結果をスタックに設定
アジェンダ 自己紹介 Gauche-Tkの紹介 サンプルアプリケーション これからやりたい事
これからやりたいこと 他Scheme処理系への移植 Guile2をターゲット チュートリアル Tkinter、Ltkも一緒に
他のTcl/Tkモジュールとの連携など(COMで Excel操作等) 単一exe化 作ったGUIプログラムを単一のexeにしたい。 非プログラマの人にも使ってもらいたい。 人は辞めてもexeは残る
単一exe化への道 Tcl/Tkでは実現できている。 Tclkit Foo.tclをfoo.exeにしてくれる。 技術的なポイント
Tcl上に構成された仮想ファイルシステム(ここに必要な ファイルをすべて入れる) スタートアップルーチン 他の言語も同じやり方で統一したい Python、CLISP、Guile等
おしまい Gauche-Tkを使うとGUIアプリが簡単に作れる。 GaucheはHEAD版を使ってください Windows版はインストーラ作りました 「Gauche-tk ぱたへね」で検索
最新版 Gauche 0.9.3 を使ってください。 今日のサンプルはgithubに https://github.com/natsutan/scm2exe/tree/master/target_sample/calc _scm