custom_tkinter_ui要素にフォントを設定する場合

 

pythonの custom tkinterにおいて

CTkLabel,CTkTextbox, CTkEntry, 

CTkButtonの初期化の際にフォントを設定するとき、


そのアプリがwindows上で動作していて、

そのシステムフォントを

font familyとして、サイズを変数に格納した数値を

使いたい場合のコードスニペットというのは

どのようなものになるのでしょうか?



`customtkinter`で`CTkLabel`、`CTkTextbox`、

`CTkEntry`、`CTkButton`のフォントを、

Windowsのシステムフォントを取得して設定する場合、

`tkinter.font.nametofont("TkDefaultFont")` 

を使用すると、

WindowsのデフォルトUIフォントを取得できます。


以下のコードスニペットでは、

Windowsのシステムフォントを取得し、

フォントサイズを変数で変更しながら適用する方法を示しています。



### **コードスニペット**


```python


import customtkinter as ctk

import tkinter as tk

import tkinter.font as tkFont


# customtkinter のテーマ設定

ctk.set_appearance_mode("System")

ctk.set_default_color_theme("blue")


# Windows のデフォルトシステムフォントを取得

default_font

 = tkFont.nametofont("TkDefaultFont")


# フォントファミリーとカスタムサイズを設定


# システムフォントのファミリー名

font_family

 = default_font.actual("family")  


# 変更したいフォントサイズ

font_size = 14 


# ルートウィンドウ

root = ctk.CTk()

root.title("CustomTkinter System Font Example")

root.geometry("400x300")


# 各ウィジェットの作成

label = ctk.CTkLabel(root, 

text="CTkLabel", font=(font_family, font_size))


textbox = ctk.CTkTextbox(root, 

font=(font_family, font_size))


entry = ctk.CTkEntry(root, 

font=(font_family, font_size))


button = ctk.CTkButton(root, 

text="CTkButton", font=(font_family, font_size))


# 配置


label.pack(pady=10)

textbox.pack(pady=10, fill="both", expand=True)

entry.pack(pady=10)

button.pack(pady=10)


# メインループ

root.mainloop()


```


### **説明**


1. `tkFont.nametofont("TkDefaultFont")` 

を使って Windows のシステムフォントを取得。


2. `.actual("family")` でフォントのファミリー名を取得し、

カスタムサイズを適用。


3. `CTkLabel`、`CTkTextbox`、`CTkEntry`、

`CTkButton` の `font` に 

`(font_family, font_size)` を指定。


この方法で、

Windows のシステムフォントを使用しつつ、

フォントサイズを自由に調整できます。




コメント