PythonのTkinterのテキスト(ラベル)のフォント、大きさ、背景色等を変更する方法

スポンサーリンク

今回は、Tkinterのフォントクラスについて詳しく説明します。

あらゆる環境に適応するグラフィカルユーザインタフェースを設計する場合、Tkinterは最良の選択肢です。

これは、プログラミング言語Pythonに付属するビルトイングラフィックライブラリです。

それでは、この特別なライブラリのいくつかの特徴を見て、私たちのGUI開発を次のレベルへと進めていきましょう。

読むことをお勧めします。

スポンサーリンク

Tkinter入門

Pythonはインターネット上に多くのGUI開発ライブラリを設定しています。

そのほとんどはオープンソースで、簡単に使うことができます。

しかし、それらはGUIの入門ガイドとしてはあまり適切ではありません。

そのため、初心者は自分の知識に合わせてそれらを学び、実装するために、より多くの時間とリソースを投資する必要があります。

ここでは、そのようなライブラリのいくつかを紹介します。

  1. PyQT5
  2. Kivy
  3. WxPython などです。

しかし、Tkinterは全く別のフレームにあります。

 なぜTkinterが組み込まれているかというと、基本的なPythonインタプリタと軽量なPython IDEであるIDLEがすべてこのパッケージを使って設計されたからです。

 その他にも、他のライブラリに比べ、基礎から応用まで非常に簡単に習得することができます

以下は、Tkinterの主なコンポーネントとクラスのリストです。

  1. ルート/ウィンドウ。このライブラリのメインウィジェットです.サイズ変更可能なウィンドウで、他のサブウィジェットを保持します。
  2. ラベル。ラベル:各ウィジェットのラベルを管理するタスクを処理するラベルです。ラベル:各ウィジェットのラベルを管理するためのラベルで、そのプロパティが定義されています。
  3. ボタン。ボタン:ユーザーのコマンドによって機能するシンプルなボタン。
  4. フォント サブウィジェットのフォントを設定するための特別なクラスです。
    1. Mainloop(メインループ ユーザが終了しない限り、GUIを無限回実行し続けるメインループ。

Tkinter を使った小さな Hello World のコード

ここでは、Hello Worldのウィンドウを作成するコードを記述します。

コードは以下の通りです。

from tkinter import *
root = Tk()
root.title("Hello World")
root.geometry("400x400")

結果は以下の通りです。

label_1 = Label(active_window, foreground_color, background_color, font, height, width)

これはほんの数行のコードで作成したウィンドウです。

それぞれの行を理解しましょう。

    1. モジュールをインポートします。
  1. そして、root 変数を使って Tk() クラスのインスタンスを作成します。Tk()クラスのオブジェクトには、任意の名前を付けることができます。
    1. title()関数でウィンドウのタイトルを設定します。これにより、ウィンドウの左上にテキストがレンダリングされます。
    1. 次に、geometry()関数でウィンドウの幅と高さを設定します。

Tkinterでテキストを印刷するための基本を理解する

基礎から学ぶ理由は、Tkinterのフォントは特定のクラスに限定されるものではなく、他のいくつかの主要なウィジェットにも反映されることを理解する必要があるからです。

こちらもご覧ください。

Tkinterのフレームとラベル。

さて、流れがわかってきたところで、さらにいろいろと勉強してみましょう。

最も重要なことは、私たちがデザインするGUIは魅力的で有益であることです。

そのために、TkinterのLabel()ウィジェットがあります。

このウィジェットがすることは、画面上にテキストを表示し、必要な情報を提供することです。

このウィジェットの構文はとてもシンプルです。

from tkinter import *
 
root = Tk()
root.title("Hello World")
root.geometry("400x400")
 
my_label = Label(root, text = "Hello World", fg = "Green", bg = "red", font = ("Arial", 32)) # setting up the labels
my_label.pack()
 
root.mainloop()

ラベルウィジェットにはもっとたくさんのパラメータがありますが、勉強するにはこれくらいで十分です。

以下は、そのコードです。

from tkinter import *
from tkinter.font import Font
 
root = Tk()
root.title("My Interface")
root.geometry('400x400')
 
my_font = Font(
    family = 'Times',
    size = 30,
    weight = 'bold',
    slant = 'roman',
    underline = 1,
    overstrike = 0
)
 
my_button = Button(root, text = 'Button', font = my_font)
my_button.pack(pady = 20)
 
root.mainloop()

結果は以下の通りです。

Hello world with tkinter

ここで注意すべき点は、font がパラメータとして機能していることです。

フォントの種類とサイズからなるタプルを与えるか、直接名前を与えることができる。

このパラメータには、さまざまな名前が用意されています。

以下に、そのいくつかを紹介します。

  1. Arial
  2. タイムズ
  3. タイムズ・ニュー・ローマン
  4. 太字
    5.イタリック
  5. 太字 イタリック

pack()メソッドは、作成したラベルを画面上に表示するためのメソッドです。


Tkinter Font クラスの使用法

フォントは、自然に作られる素晴らしい書体のひとつです。

世界中の人々が異なる手書きスタイルを持っており、同じものをデジタルフォーマットに変換する方法を知っている人々は、私たちが使用し、愛するフォントを開発しています。

Tkinterのフォントクラスを使えば、Tkinterウィンドウに印刷されるテキストをボールド、イタリック、ローマンに変換したり、フォントファミリを変更したりすることができます

さて、フォントの機能の一部を操作したので、tkinter.fontモジュールから派生したメインのフォントクラスを見ていきましょう。

このモジュールは主に4つのタイプを提供しています。

  1. tkinter.font.NORMAL
  2. tkinter.font.BOLD(太字
  3. tkinter.font.ITALIC
  4. tkinter.font.ROMAN

この理論についてより詳しく知りたい方は、こちらのリンクから公式ドキュメントをお読みください。

私たちは直接、コードの形でアプリケーションを見ることができます。

Label Window Output
Tkinter Font Class Output

上記のコードの説明です。

  1. まず、tkinterモジュールのすべてのサブモジュールをインポートします。次に、tkinter.fontモジュールからFontクラスをインポートします。これはメインとなるユーティリティクラスです。
    1. 次に、Instanceすなわちrootを作成します。タイトルを “My interface “に設定します。
    1. ジオメトリを 500×500 (幅×高さ) に設定します。
    1. Fontクラスのインスタンスとして、my_tempty_fontを作成します。family:フォントの種類を選択、size:フォントの大きさ、weight:フォントの太さ bold/normal、slant:斜めのスタイル roman/italic、underline:テキストの下に下線を引く、overstrike:取り消し線を引く、という拡張的なパラメータを持っています。
  2. その後、クリックされるだけで何もしないボタンウィジェットを用意します。パラメータは、default window as root, text label as “Button”, font = my_font です。これは、Fontクラスの作成されたmy_fontオブジェクトを呼び出します。
    1. mainloopは、すべてのコードを実行し、すべてのGUIイベントを追跡しています。6.メインループは全体のコードを実行し、すべてのGUIイベントを記録します。

まとめ

以上で、tkinterのフォントクラスについて知るためのこのトピックを終了します。

このトピックは理解するのも実装するのも簡単なものです。

これでGUIの知識がより深まることを願っています。

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