我无法在没有错误的情况下更改 tkinter 中按钮的字体

时间:2021-05-04 16:37:12

标签: python tkinter

我目前正在开发一个简单的 GUI 来帮助我完成未来的项目,我刚刚开始放置标签和一个按钮来打开一个新窗口。目前它可以工作,但是每当我尝试更改按钮上的文本字体时(使用 getStarted.config(font=("Courier",15)))它都不起作用,而在其他项目中,我通常没有更改按钮字体的问题。 (当我注释掉改变它工作的文本字体/大小的一行时,只使用默认文本。)我怀疑它与我的类系统有关,但是我不确定如何修复它,所以任何感谢帮助。

from tkinter.ttk import *

def getStarted():
    NewWindow(homeWindow)


class NewWindow(Toplevel):

    def __init__(self, homeWindow=None):
        super().__init__(master=homeWindow)
        self.title("Information")
        self.geometry("600x600")
        label = Label(self, text="Enter your information")
        label.pack()



homeWindow = Tk()
homeWindow.title("Rota System")
homeWindow.geometry("600x600")

welcome = Label(homeWindow, text="Rota System")
welcome.config(font=("Courier", 30))
welcome.pack(side=TOP, pady=10)

byTom = Label(homeWindow, text="Created by Tom")
byTom.config(font=("Courier", 10))
byTom.pack(side=TOP, pady=10)

getStarted = Button(homeWindow, text="Click here to get started", command = getStarted)
getStarted.config(font=("Courier",15)) #This is the line causing issues, it works in other projects
getStarted.place (x=25,y=500,height=50,width=550)




mainloop()

1 个答案:

答案 0 :(得分:1)

试试这个:

import tkinter as tk
from tkinter import ttk

def get_started():
    NewWindow(home_window)


class NewWindow(tk.Toplevel):
    def __init__(self, master=None):
        super().__init__(master=master)
        self.title("Information")
        self.geometry("600x600")
        label = ttk.Label(self, text="Enter your information")
        label.pack()


home_window = tk.Tk()
home_window.title("Rota System")
home_window.geometry("600x600")

welcome = ttk.Label(home_window, text="Rota System")
welcome.config(font=("Courier", 30))
welcome.pack(side="top", pady=10)

byTom = ttk.Label(home_window, text="Created by Tom")
byTom.config(font=("Courier", 10))
byTom.pack(side="top", pady=10)

# Use `tk.Button` instead of `ttk.Button`
getStarted = tk.Button(home_window, text="Click here to get started",
                        command=get_started)
getStarted.config(font=("Courier", 15))
getStarted.place(x=25, y=500, height=50, width=550)

home_window.mainloop()

这就是不鼓励 from ... import * 的原因。您使用的 ttk.Button 没有 font 属性。 tk.Button 具有 font 属性,所以我认为这就是您想要使用的。