Python 3.x 无法将ttk主题应用于.toplevel()
我试图在tkinter和Python3中创建一个slasph屏幕,它在菜单栏上同时作为一个about屏幕 到目前为止,我已经读到,我应该在第二个Python 3.x 无法将ttk主题应用于.toplevel(),python-3.x,tkinter,ttk,tkinter-menu,Python 3.x,Tkinter,Ttk,Tkinter Menu,我试图在tkinter和Python3中创建一个slasph屏幕,它在菜单栏上同时作为一个about屏幕 到目前为止,我已经读到,我应该在第二个splash\u root上使用Toplevel()方法,但它只是向我发送了一个错误,名称“Toplevel”未定义 我是否错过了一些基本的东西,或者只是误解了Toplevel()的工作原理 import tkinter as tk import tkinter.ttk as ttk from PIL import ImageTk, Image from
splash\u root
上使用Toplevel()
方法,但它只是向我发送了一个错误,名称“Toplevel”未定义
我是否错过了一些基本的东西,或者只是误解了Toplevel()
的工作原理
import tkinter as tk
import tkinter.ttk as ttk
from PIL import ImageTk, Image
from ttkthemes import ThemedTk
def splash_screen():
splash_root = Toplevel(root)
splash_root.geometry("500x400")
img_title = ImageTk.PhotoImage(Image.open("art/icons/random.png"))
lbl_img_title = ttk.Label(splash_root,image=img_title)
lbl_img_title.pack(side="top",pady=20)
splash_label_by = ttk.Label(splash_root, text="name")
splash_button = ttk.Button(splash_root, text="close", command=lambda: splash_root.destroy())
splash_label_by.pack(pady=20, padx=20)
splash_button.pack(ipadx=10, ipady=10)
splash_screen()
root = ThemedTk(themebg=True)
root.set_theme('black')
root.title("splash")
root.geometry("500x500")
root.mainloop()
你的问题的答案是:
#Toplevel(root) is not defined
tk.Toplevel(root) #will solve your Toplevel problem.
如果你打电话
闪屏
在声明root之前,将不定义root,并且您的代码仍然无法工作。我做了一些调整,并将“splash\u root”和“splash\u root geometry()”移动到主root窗口中。这就解决了错误消息,但主题不是从根继承的。通过一点研究,我发现了一条评论:#Normal Tkinter.*小部件没有主题!这里:这意味着,您可能必须构建一个自己的顶级init,它调用根的主题。谢谢,我会仔细查看的