在Tkinter中添加带有fontTools的.ttf字体

2024-06-09 10:20:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉编码,我正在用Python创建一些东西,这些东西将允许我探索程序和包的局限性,并使我能够在以后创建更严肃和有用的程序。 我已经阅读了大量关于fontTools的文章和wiki指南,但我找不到我想要的具体答案,我想我要问的是不可能的,但我还是会继续

昨天的项目是用Tkinter软件包制作一个以星球大战为主题的闹钟,这个软件包很简单,然后我意识到我可以用Tkinter制作多个窗口,所以我为第一个窗口编程了一种方式,显示“很久以前在遥远的银河系…”点击按钮后,第二个窗口显示星球大战并播放主题:


import tkinter as tk
from tkinter import *
import threading
import winsound
from fontTools.ttLib import TTFont

font = TTFont("C:/Users/lugz2/PycharmProjects/StarWarsGUIChanger/Starjedi.ttf")


window = Tk()
window.config(bg="black")
starwars = tk.Label(
    text="A long time ago in a galaxy far far away...",
    fg="lightBlue",
    bg="black",
    height=800,
    width=400,
    font=(None, 20)
)
window.title("Star Wars")
window.geometry("800x400")
starwars.pack()


def play():
    winsound.PlaySound("swtheme.wav", winsound.SND_ALIAS)


def printtext():
    threadsound.start()
    print("STAR WARS")
    window2 = Tk()
    window2.config(bg="black")
    starwarsnew = tk.Label(
        window2,
        text="STAR WARS",
        fg="yellow",
        bg="black",
        height=800,
        width=400,
        font=(font, 80)
    )
    window2.title("STAR WARS")
    window2.geometry("800x400")
    starwarsnew.pack()


threadsound = threading.Thread(target=play)

button = Button(window, text="PLAY", fg="lightBlue", bg="black", width=10, command=printtext).place(x=350, y=300)


starwars.mainloop()

在上面的代码中,您可以看到我使用fontTools添加了“Starjedi.ttf”,然后我想将其导入Tkinter以用于“window2”中的“星球大战”文本-我尝试了很多方法,但似乎没有任何效果!我想知道是否有人能告诉我这是否可能,如果可能,我该怎么做


Tags: textimporttkinterwindowwidthtkstarbg