TK |制作TTK样式时,图像“ pyimage1”不存在

时间:2019-12-28 02:58:36

标签: python tkinter ttk

我正在更新我的应用程序以使用TTK小部件,而不是标准TK小部件。但是,当尝试创建自定义样式时。

我正在使用此代码创建样式

s = ttk.Style()
s.configure('RB.Default', foreground='grey', background=Config.BG_Colour)

但是,这会在我的PhotoImage中创建一个错误(未创建样式时不会发生)。

File "C:\Users\Realistik\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 2766, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "C:\Users\Realistik\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 2299, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image "pyimage1" doesn't exist

回溯中提到一个PhotoImage。它的代码是:

#Logo Image
App_Logo = PhotoImage(file="img\\app_logo_small.png")
App_Logo_Label = Label(MainWindow, image=App_Logo)
App_Logo_Label.grid(row=0, column=0) 

如何在保留图像标签的同时解决此错误?

1 个答案:

答案 0 :(得分:2)

要使其正常工作,必须在初始化根窗口之后创建样式。所以就我而言,看起来像这样

from tkinter import *  
import tkinter.ttk     # from this line you are able to make object of ttk class
MainWindow = Tk()
s = ttk.Style()
s.configure('RB.Default', foreground='grey', background=Config.BG_Colour)