2025/10/30(木) [n年前の日記]
#2 [tkinter] tkinterのmessageboxのフォントを変更してみたかった
Python + tkinter で、messagebox のフォントサイズを変更してみたかったのだけど、Windows11 x64 25H2 上では全然上手く行かなくて…。いやまあ、以前調べた時に、Windows上での messagebox はOSのメッセージボックスを呼び出しているからフォント変更等は簡単にできないという話を見かけた記憶があるので、予想通りの結果ではあるのだけど…。
_mieki256's diary - tkinterのmessageboxでフォントサイズを変更したかったけど無理だった
ただ、Windows と Mac はシステムダイアログを使ってるからフォントの変更はできないけれど Linux は独自ダイアログで messagebox を実現してるからフォント変更ができる、という話を見かけて、本当なのかなと気になってきた。
_How to set font of a messagebox with Python tkinter? - Stack Overflow
_tk_messageBox
Ubuntu Linux 20.04 LTS + Python 3.8.10 上で試してみた。
_05_messagebox_font_linux.py
たしかに Linux上なら messagebox のフォントを変更できるらしい。
_mieki256's diary - tkinterのmessageboxでフォントサイズを変更したかったけど無理だった
ただ、Windows と Mac はシステムダイアログを使ってるからフォントの変更はできないけれど Linux は独自ダイアログで messagebox を実現してるからフォント変更ができる、という話を見かけて、本当なのかなと気になってきた。
_How to set font of a messagebox with Python tkinter? - Stack Overflow
_tk_messageBox
Ubuntu Linux 20.04 LTS + Python 3.8.10 上で試してみた。
_05_messagebox_font_linux.py
"""
messagebox sample. font change.
Linux上ではフォント変更が反映されるが、Windows上では反映されない。
Ubuntu Linux 20.04 LTS + Python 3.8.10
"""
import tkinter as tk
from tkinter import messagebox
TEXT = "Lorem ipsum dolor sit amet, \nconsectetur adipiscing elit, \nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
TITLE = "messagebox"
def show_messagebox():
global root
messagebox.showinfo(TITLE, TEXT, parent=root)
root = tk.Tk()
root.title("messagebox sample")
root.geometry("300x200")
# font setting
root.option_add("*Dialog.msg.font", "Impact 24")
# root.option_add("*Dialog.msg.width", 20)
# root.option_add("*Dialog.msg.wrapLength", "8i")
btn1 = tk.Button(root, text="Show messagebox", command=show_messagebox)
btn1.pack(pady=8)
root.mainloop()
たしかに Linux上なら messagebox のフォントを変更できるらしい。
[ ツッコむ ]
以上です。
