2019年2月12日火曜日
Tcl/Tk ボタンの配置など
ボタンの配置出来たけど時間かかったわ~( ̄― ̄)
今のGoClipはリソースで作ったので簡単だった、その代わり柔軟さはない
ダイナミックに配置しようと思ってたけど面倒なので実装しないままです
でも多分その方が簡単だったと思う
メインウインドウのサイズに応じてボタン等の部品を配置する関数を書いて、サイズ変更の都度そこに投げるだけだから
これをTcl/tkで書くと色んなオプションを駆使しなくちゃいけない
このMainタブはtextの下にframeをpackして、frameの中にボタンをgridしてる
それぞれウインドウのリサイズ時に一緒に伸びたり縮んだりする
packは -fill と -expand を使う
widget の時点で -anchor -sticky も使う
試行錯誤の繰り返しだが理屈がわからん!!(>_<)!!
gridは結構わかりやすかった
columnconfigure で -weight をかけてやれば良い
でも元のframeを適切に配置出来なければこれも意味ない
同じウインドウにpack と grid を混在させたら、エラーにはならないけど画面が描画されずに、プロセスだけ残る状態になった
これバグですかね
実はまだtextをうまく pack 出来てない
widget配置のスキルを上げて意味あんのかな~って少し疑問に思いながらも、区切りがつくまではやってみます~(・∀・)ノ
登録:
コメントの投稿 (Atom)
ジオメトリマネージャの考え方は「Rubyを256倍使うための本 界道編」が参考になりました。これはかなり古いRuby/Tkの解説書なんですけど、Tcl/Tkの解説書はもっと古いのでそれよりは新しくて分かりやすかったです。
返信削除
返信削除isoroku2019年5月9日 16:34
2月にコメントいただいてたんですね
今気づきました
返信大変遅くなり申し訳ありません
このブログは10年やってますがコメントいただいたのは初めてでした(・∀・)ノ
Tcl/Tk やってたのはつい数ヶ月前だったんだなあと思うくらい今私はどっぷりPythonにはまってます
Pythonでもtkは使えますが、いろんなGUIをいじってるうちにQtに落ち着きつつあります
でもGUIの考え方、特に部品の配置についてはどれも似ていて、tkでの試行錯誤は役に立っています
yamasakiさんはRubyな方ですか?
私はtclの将来性に疑問を感じてrubyを勉強しているうちに浮気したpythonに本気になってしまいました
しかし最近sqliteをいじってるんですが、pythonだと使いづらく、rubyから操作した方が簡単そうだなと思ったり
今は色んな選択肢があって情報も多いし、良い時代になったなあと感じます