ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

 

[Setup Log] Tkinter์—์„œ ํ•œ๊ธ€์ด ๊นจ์งˆ ๋•Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Tkinter๋ฅผ ์‚ฌ์šฉํ•ด Python GUI๋ฅผ ๋งŒ๋“ค ๋•Œ, ํ•œ๊ธ€์ด ๋„ค๋ชจ(โ–ก)๋‚˜ ๋ฌผ์Œํ‘œ(?)๋กœ ๊นจ์ ธ ๋ณด์ด๋Š” ํ˜„์ƒ์ด ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Tkinter ๊ธฐ๋ณธ ํฐํŠธ๊ฐ€ ํ•œ๊ธ€์„ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… 1. ํ•œ๊ธ€ ํฐํŠธ ์„ค์น˜

Ubuntu ๋˜๋Š” WSL ํ™˜๊ฒฝ์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํ•œ๊ธ€ ํฐํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt update
sudo apt install fonts-nanum fonts-nanum-coding fonts-noto-cjk

์„ค์น˜ ํ›„, ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ํฐํŠธ๊ฐ€ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

fc-list :lang=ko | grep -i nanum

โœ… 2. Tkinter ์ฝ”๋“œ์—์„œ ํฐํŠธ ์ ์šฉ

ํฐํŠธ ์ด๋ฆ„์„ ์ง์ ‘ ์ง€์ •ํ•˜์—ฌ Label ๋“ฑ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

import tkinter as tk

root = tk.Tk()
tk.Label(root, text="์•ˆ๋…•ํ•˜์„ธ์š”. ์ฃผ์‹ ๋ถ„์„๊ธฐ์ž…๋‹ˆ๋‹ค!", font=("NanumGothic", 12)).pack()
root.mainloop()

โœ… 3. ๊ธฐ๋ณธ ํฐํŠธ ์ „์ฒด ์„ค์ •

๋ชจ๋“  ์œ„์ ฏ์— ๊ธฐ๋ณธ ์ ์šฉ๋˜๋Š” ํฐํŠธ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค:

import tkinter as tk
import tkinter.font as tkFont

root = tk.Tk()
default_font = tkFont.nametofont("TkDefaultFont")
default_font.configure(family="Noto Sans CJK KR", size=12)

tk.Label(root, text="์ „์ฒด ๊ธฐ๋ณธ ํฐํŠธ ์ ์šฉ!").pack()
root.mainloop()

โœ… 4. ์—ฌ์ „ํžˆ ์•ˆ ๋  ๊ฒฝ์šฐ

  • fc-cache -fv ์‹คํ–‰ ํ›„ ์‹œ์Šคํ…œ ์žฌ์‹œ์ž‘
  • ํฐํŠธ ์ด๋ฆ„ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ
  • fc-list :lang=ko๋กœ ์ „์ฒด ํ•œ๊ธ€ ํฐํŠธ ๋ชฉ๋ก ํ™•์ธ

๐Ÿ“Œ ์š”์•ฝ

๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
ํ•œ๊ธ€์ด ๋„ค๋ชจ๋กœ ๊นจ์ง ํฐํŠธ ์„ค์น˜ ํ›„ Tkinter์— font=(...) ๋ช…์‹œ
ํฐํŠธ ์„ค์น˜ํ•ด๋„ ์•ˆ ๋‚˜์˜ด fc-cache -fv ์‹คํ–‰, ์ •ํ™•ํ•œ ํฐํŠธ ์ด๋ฆ„ ํ™•์ธ
์ „์ฒด ์œ„์ ฏ์— ํฐํŠธ ์ ์šฉ tkFont.nametofont("TkDefaultFont").configure(...)

๐Ÿท๏ธ ํƒœ๊ทธ

Tkinter, ํ•œ๊ธ€ ๊นจ์ง, ํฐํŠธ ์„ค์ •, Python GUI, fonts-nanum, WSL, Ubuntu, Setup Log