首页 > 解决方案 > 有没有办法有条件地改变 Tkinter GUI 中文本的大小?

问题描述

所以,我正在创建一个应用程序,它显示输入歌曲的歌​​词,但是,较长的歌曲不适合,所以如果它是较长的歌曲,我想缩小文本的大小。我不确定如何去做,所以任何帮助将不胜感激。

我尝试过使用条件,但是它似乎不起作用。

file = open(artist + song + ".txt", "r")
lyrics = file.read()
lines = file.readlines()
lyricsLabel = tk.Label(root, text = lyrics)

lyricsLabel.config(font = ("TkDefaultFont", 5))

lyricsLabel.grid(column = 0, row = 0)

if playSong == True:
    os.startfile(artist + song + ".mp3")

标签: pythontkinter

解决方案


您可以使用 来测量文本文件的长度len(),然后中断到修改字体大小的 elif 语句。例如

text = len(song)

if text < 20:
   font_size = 20
elif text > 20 and < 40:
   font_size = 15

ETC...

然后

song = Lable(root, text= song)
song.config(font = ("TkDefaultFont", font_size))

推荐阅读