【Python】Tkinter 第2回 テキストを描画する
前回、PythonのデフォルトGUIアプリのTkinterを使ってウィンドウを作成しました。
shizenkarasuzon.hatenablog.com
今回は、「ラベル」を使って、ウィンドウに文字を書いてみます。
サンプルプログラム
# -*- coding: utf-8 -*- import tkinter from tkinter import font root = tkinter.Tk() root.title("Label") root.geometry("300x200") #デフォルト label1 = tkinter.Label(root, text="Hello, World!") #文字ラベル設定 label1.pack(side="top") # 場所を指定 (top, bottom, left, or right) #文字色、背景色、サイズ、フォントを指定。 font1 = font.Font(family='Helvetica', size=20, weight='bold') label2 = tkinter.Label(root, text="止まるんじゃねえぞ", fg="white", bg="black", font=font1) label2.pack(side="top") #座標入力 font2 = font.Font(family='Times', size=40) label3 = tkinter.Label(root, text="Text2", font=font2) label3.place(x=10, y=60) root.mainloop()
上のプログラムを実行してください。
実行結果
このように表示されればOKです。
簡単に解説
ラベルの作成は次の3STEPで行います。
STEP1.フォントを作成
font1 = font.Font(family='Helvetica', size=20, weight='bold')
このようにしてフォントを作成します。フォント作成はmustではないですが、作成しないと実行結果の画像の「Hello, World!」のように文字が小さくて見づらくなります。
その為、フォントを作成して文字の大きさ等を調節したほうがいいと思います。
フォント作成方法ですが、font.Font()関数で実行します。引数にフォントの色々な設定をしていく感じです。
引数の例:
例 | 説明 |
---|---|
family='Helvetica’ | フォント(文字の形)を変える |
size=20 | 文字サイズ(ピクセル)の設定 |
weight='bold' | こう書くと太字になる |
slant="italic" | 斜体 |
underline="underline" | 下線を付ける |
overstrike="overstrike" | 取り消し線を付ける |
などなど...
利用可能なフォントの一覧は以下のスクリプトの実行で得ることができます。
import tkinter import tkinter.font as font root = tkinter .Tk() print(font.families())
STEP2.ラベル(テキストオブジェクト)を作成
Tkinterには、「ラベル」と呼ばれるテキストオブジェクトが存在します。
ウィンドウにテキストを描くには、以下のようなプログラムでラベルを作成します。
label2 = tkinter.Label(root, text="止まるんじゃねえぞ", fg="white", bg="black", font=font1)
これも、rootとtext引数は必須ですが、そのあとのfgとかbgとかの引数はなくても動作します。
一応、それぞれの引数の説明をすると、このようになります。
例 | 説明 |
---|---|
root | 表示するウィンドウ選択 |
text | 描画する文字(日本語対応) |
fg="white" | 文字色(デフォルトは黒) |
bg="black" | 背景色 |
font=font1 | STEP1で作ったフォントを読み込ませる |
因みに、fg, bgの色設定は以下のようにHTML等で使われるカラーコードを使って書くことも可能です。
label2 = tkinter.Label(root, text="止まるんじゃねえぞ", fg='#ffffff', bg='#000000')
カラーコードの一覧はこちらを参考にしました。
www.netyasun.com
STEP3.配置を決定
label2.pack(side="top")
の部分で、ウィンドウのどの部分にテキストを置くかを設定します。
side引数には「top, bottom, left, right」の5種類を設定することができ、それぞれ画面の上側、下側、左側、右側に文字を置きます。
また、
label2.place(x=10, y=60)
と書くことで座標で表示位置を指定することもできます。