Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gauche-Tkで簡単GUIプログラミング
Search
Minoru Natsutani
May 24, 2012
Technology
1.8k
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
3D Gaussian Splatting勉強会
natsutan
0
36
初めての模倣学習とVLA
natsutan
0
530
放熱勉強会資料
natsutan
0
42
グラフの書き方勉強会
natsutan
0
110
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
100
動き検出勉強会資料
natsutan
0
63
WindowsでGenesisに挑戦した話
natsutan
0
580
辛い仕事をプリキュアで乗り切りHack
natsutan
0
100
論文読み勉強会 RoboGen
natsutan
0
400
Other Decks in Technology
See All in Technology
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
150
GoにおけるFFIのこれまでとこれから
goccy
5
2.1k
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
160
ASTを使って影響範囲を特定する
nealle
0
140
振り返りこそエンジニアの本領
negima
0
360
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
500
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
120
V8コントリビュート超入門
riyaamemiya
0
160
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
130
module Synths; end
asonas
1
130
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
310
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
The Pragmatic Product Professional
lauravandoore
37
7.4k
Six Lessons from altMBA
skipperchong
29
4.5k
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
Design in an AI World
tapps
1
310
Evolving SEO for Evolving Search Engines
ryanjones
0
280
Ethics towards AI in product and experience design
skipperchong
2
370
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Leo the Paperboy
mayatellez
9
2.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
440
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
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