TTK 按钮显示为 TK 按钮 Python 3.8

问题描述

我在 tkinter 应用程序中使用 TTK 按钮,它们显示为旧的 TK 按钮。我不知道为什么,但我想知道如何解决它,以及它为什么会发生。该应用程序是基本的,所以如果有人可以帮助我,我将很高兴得到帮助。 这是我的代码,它只是一些有趣的 EA 笑话应用程序:

import tkinter
import tkinter as ttk
from tkinter import messageBox

class func(ttk.Frame):
    global ok
    def ok():
        modlabel.destroy()
        button2 = ttk.Button(ea,text="About",command=appear,cursor="hand2")
        button2.pack()
        okbtn.destroy()
        messageBox.showinfo("Notifications","Your cpu temperature has exceeded 8125℃ \nProlonged use at this temperature may shorten the cpu's lifespan.")
    
    global appear
    def appear():
        global modlabel
        modlabel = ttk.Label(ea,text="Welcome. EA,Electronic Arts Inc. is an American video game company headquartered in Redwood City,California. \nIt is the second-largest gaming company in the Americas and Europe by revenue and market capitalization after \nActivision Blizzard and ahead of Take-Two Interactive,CD Projekt,and Ubisoft as of May 2020.")
        modlabel.pack()
        button.destroy()
        global okbtn
        okbtn = ttk.Button(ea,text="OK",command=ok)
        okbtn.pack()

class app(ttk.Frame):
    global ea
    ea = ttk.Tk()
    ea.title("EA")
    ea.geometry("620x300")
    global button
    button = ttk.Button(ea,cursor="hand2")
    moneylabel = ttk.Label(ea,text="                                                                                                                                                                   99$      69$      100$")
    moneylabel.pack()
    button.pack()
    ea.mainloop()

解决方法

您的代码未导入 ttk 模块。以下行仅导入 tkinter 并使用 ttk 作为其别名:

import tkinter as ttk

要导入 ttk 模块,请使用:

from tkinter import ttk

之后,您还需要将 ttk.Tk() 更改为 tkinter.Tk()


还要注意,你定义这两个类的方式是不正确的。