Tkinter(Python) でGUIを作ろう!

Tkinter(GUI)

Widget配置方法

Tkinter は widget を配置する方法として pack, grid, place の3つも方法があるようです。正直言って全くわからん。

あと、配置の枠組みを決める Frame という widget がありますよね。どうやらFrame 自身はほとんど何も表示しませんが、widget をまとめるのに使うらしいんですが、少し理解をするためにもまとめてみます。

packはどうやら1次元の配置の時に使うようです。2次元配置はgrid、配置を直接指示するのがplaceだって~

なので、pack()はただひたすら縦にならぶだけ。どうやらgridとplaceの併用は出来ないみたい。人のコードを組み合わせて何とかしようって考えている人にはありがちですよね。私も今ひたすら悩んでます。

v = StringVar()
cb = ttk.Combobox(
frame, textvariable=v,
values=Bangous, width=50, height=30)
cb.set(Bangous[0]) #ちなみにBangous[]は社員の番号リストです
cb.pack()
button1 = ttk.Button(
frame, text='選択したらOKを押してください',
command=lambda: root.quit())
button1.pack()

これだとひたすら縦に並びます (笑)

コマンドボタン

PythonのTkinterでボタンを押したときに複数コマンドを実行したい場合

ボタンを押したときに複数個のコマンドを実行したいときありますよね。無理だと思って無理やり関数で処理させたりしてたんですがなんか出来そうみたいですよ。基本的にlambda関数を使ってボタンから関数を起動させていますが並べるだけで大丈夫です。

command=lambda:[funcA(), funcB(), funcC()]

こんな簡単でよかったんですか?できた~!ずっとわからなかったことがわかるって感動ですね!

コメント

タイトルとURLをコピーしました