この記事は、JavaとPythonを基礎から学びたい私のための Advent Calendar 2024の17日目の記事です。
昨日の続きです。遅くなりました
tkinterを使ってアプリを制作する続きです。
ラベルの位置を変更する
ラベルを出すだけなら
label=tk.Label(text='文字が出ました')
label.pack()
で文字を出せました。このラベルの位置は、さまざまなやり方で変更できるみたいです。
上下左右につける
label.pack(side=tk.TOP)
こんな感じで、side=tk.○○のような書き方をするとラベルがその位置で表示されます。それぞれこんな感じでした。
場所 | 書くもの |
---|---|
上 | TOP |
下 | BOTTOM |
左 | LEFT |
右 | RIGHT |
この四つで場所を指定できるみたいです。すべて端によります。真ん中はありませんでした。
placeを使う
label.place(x=100,y=200)
こんな感じでxとyを使ってラベルの位置を変えることができます。先ほどのものと違って、細かい場所の指定ができるため、使い勝手がいいです。
gridを使う
gridを使って文字の列、行を指定して出すことができるようです。
A=tk.Tk()
A.geometry("200x300")
A.title("アプリもどき")
label=tk.Label(text='場所が変わりました',foreground='#00fa9a')
label.grid(row=1,column=1)
label2=tk.Label(text='文字が出ました',foreground='#00fa9a')
label2.grid(row=0,column=0)
A.mainloop()
「場所が変わりました」の文字がちょっと移動します。rowは行、columnは列です。上のものでは端から1ずつ動いています。
anchorを使う
調べた結果このやり方もあるそうなのです。いろいろ種類があるようですが、右下とか中央とかを選んでもどうしても一番上に寄ってしまいました。ただ、左右には動いてくれます。参考程度に見てください。
label.pack(anchor=tk.W)
label.packのほうの()内に書くことで、動くようです。
向き | 必要な文字 |
---|---|
上 | N |
下 | S |
左 | W |
右 | E |
右上 | NE |
右下 | SE |
左上 | NW |
左下 | SW |
中央 | CENTER |
端から少し移動させたいとき
padyとかいうものを使うことで、端からちょっとだけ動かすことができるみたいです。padxとpadyなるものがあるようです。
例えば先ほどのsideで位置を指定した後にpadyを使って
label.pack(side=tk.TOP,pady=200)
とすると、sideで本来一番上段真ん中に表示されるものがpadyで指定した分だけ下に移動しました。
padxは指定した分だけ横に移動します
ほかにもやり方があるみたいですが、上のやり方だけ覚えておけばとりあえずラベルの位置を設定できるでしょう。
ラベルの色や大きさなどを変える
ラベルの文字の色、大きさを自由に変えることができるみたいです。
色を変える
foregroundを使うことで色の変更が可能なようです。
textの横に書くみたいです。ライトな緑色にしてみます。
label=tk.Label(text='文字が出ました',foreground='#00fa9a')
上の画像のように、緑色の文字に代わります。
ところで、=の右側の数字とアルファベット小文字の羅列は色コードです。
下のサイトなどを参考にするのがいいと思います
フォントと大きさを変える
文字のフォントと大きさは一緒に指定するようです。
label=tk.Label(text='文字が出ました',foreground='#00fa9a',font=('Roman',18))
font=(フォント名,フォントの大きさの数値)で記載するようです。フォントは大量にありますが日本語に対応していないものもあるので注意してください。ちなみに上のコードをそのまま使うと3文字くらい出ませんでした。
ボタンを付ける
文字を出すだけでなく、いろいろ追加できるみたいです。とりあえず今日はボタンだけつけておきます。
button=tk.Button(text='何も起こらない')
button.pack(padx=50,pady=30)
ボタンの文字を選択して、位置を決めるだけです。文字と同じく、位置を指定しないと上段中央になります。
ちょっと昔のwebサイトとかでよく見かけるボタンになりました
まとめ
文字は位置、フォントや文字サイズなどを細かく指定することができる。
ボタンも文字と同様にいろいろ指定することができる。
参考文献