「Python3」Tkinter Ver.8.6(Labelの作成と文字列・写真の表示)

Tkinter Python

Labelとは?

Labelウィジェットは、文字列や画像を表示するために使用されます。
Labelウィジェットは、基本的に親要素にFrameを指定します。

文字列の表示

<ソースコード>
from tkinter import Tk
from tkinter import ttk
from tkinter import font

#メインウィンドウの生成
root = Tk()
#ウィンドウのタイトル
root.title('Application')
#Frame生成
frame = ttk.Frame(
    root,
    width = 300,
    height = 300
    )

#スタイル指定
style = ttk.Style()
style.configure(
    "BR.TLabel",
    foreground="black",
    background="#ff0000",
    )

#フォント指定
font = font.Font(
    family='Helvetica',
    size=20,
    weight='bold',
    underline = True
    )

#Label生成
label = ttk.Label(
    frame, #親要素を指定
    text = '12345\nabcdef\nあいうえお', #表示する文字
    width = 20, #横幅
    anchor="w", #位置
    font = font, #文字のスタイル
    padding = (20, 20), #隙間
    style = "BR.TLabel", #スタイル
    relief = "sunken", #形状
    justify='right',
    )

#ウィンドウ内にFrameをgrid表示
frame.grid()
#Frame内にLabelをgrid表示
label.grid()

#ウィンドウ表示
root.mainloop()
<出力結果>

Label 説明01
Labelの指定できるオプションをまとめます。

オプション 説明
text ウィジェット内に表示されるテキスト text = ‘12345’
textvariable テキストを格納するオブジェクトを指定
width 横幅 width = 20
anchor 文字の位置 anchor = “w”
font 文字のスタイル
padding 内側の空白の部分の長さを指定
引数1つ:上下左右全てが同じ
引数2つ:上下と左右が同じ
引数4つ:上下左右各々指定
padding = (20, 20)
style スタイル
relief 形状 relief = “sunken”
justify 文字揃え位置 justify =’right’

“relief”オプションは、以下の値を指定することができます。

reliefオプション 説明
flat 平坦
raised 出っ張り
sunken 引っ込み
groove
ridge 土手

表示する文字列を実行中(例えば、ボタンを押された時)に変更したい場合は、”textvariable”オプションで行います。

#文字列を得るオブジェクトを生成
resultsContents = StringVar()
label['textvariable'] = resultsContents
#新しい文字列をセット
resultsContents.set('Hello!!!')

写真の表示

<ソースコード>
from tkinter import *
from tkinter import font
from tkinter import ttk
#メインウィンドウの作成
root = Tk()

#Frame生成
frame = ttk.Frame(root)

img = PhotoImage(file = 'tkinter.png')

font = font.Font(
    family = 'Helvetica',
    size = 100,
    weight = 'bold',
    )

#label生成
label = ttk.Label(
        frame, #親要素指定
        image = img, #表示する画像
        font = font, #フォント
        text = 'Hello', #表示する文字
        foreground = '#0000ff', #文字色
        background = '#aaaaaa', #背景色
        anchor = "w", #位置
        padding = (10, 10), #隙間
        compound = 'top' #画像位置
        )

#ウィンドウ内にFrameを表示
frame.grid()
#Frame内にLabelを表示
label.grid()

#ウィンドウのタイトル
root.title('Application')
#ウィンドウ表示
root.mainloop()
<出力結果>

Label 説明02
“compound”オプションは、文字列と画像の位置関係になります。

指定 画像の位置
top 文字列の上に画像を表示する
bottom 文字列の下に画像を表示する
left 文字列の左に画像を表示する
right 文字列の右に画像を表示する

画像だけを表示したい場合は、”text”を指定しなければ良いです。

コメント

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