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
45
初めての模倣学習とVLA
natsutan
0
750
放熱勉強会資料
natsutan
0
44
グラフの書き方勉強会
natsutan
0
110
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
110
動き検出勉強会資料
natsutan
0
69
WindowsでGenesisに挑戦した話
natsutan
0
620
辛い仕事をプリキュアで乗り切りHack
natsutan
0
110
論文読み勉強会 RoboGen
natsutan
0
410
Other Decks in Technology
See All in Technology
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
Running Kotlin + Quarkus with Lambda
nealle
0
380
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
150
パッチ更新でterraform initが落ちた日
grimoh
1
120
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
140
メルペイ 会計システム概要と歴史
mewuto
0
200
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
1
780
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
280
go-sqletch
moznion
0
130
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
460
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
150
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
230
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
610
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Deep Space Network (abreviated)
tonyrice
0
360
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Typedesign – Prime Four
hannesfritz
42
3.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Scaling GitHub
holman
464
140k
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