我有兩個python檔案,一個是帶有字體資訊的組態檔
這是我的組態檔:
from tkinter.font import Font
HEADER_FONT = Font(
family="Futura",
size=22,
weight="bold",
)
以下是我在主檔案中遇到問題的行:
import app.config.colors as colors
import app.config.fonts as fonts
root = tk.Tk()
headerFrame = tk.LabelFrame(root, bg=colors.WHITE, bd=0)
headerFrame.pack(side="top", fill="x")
headerLabel = tk.Label(headerFrame, text="job automator 2", fg=colors.PRIMARY, bg=colors.WHITE, font=fonts.HEADER_FONT).pack(padx=5, pady=10, anchor=W)
root.mainloop()
最后,這是我希望解決的錯誤:
Traceback (most recent call last):
File "c:\Users\Tommy's Gaming PC\Desktop\Python Projects\JobAutomator2\app.py", line 12, in <module>
import app.config.fonts as fonts
File "c:\Users\Tommy's Gaming PC\Desktop\Python Projects\JobAutomator2\app\config\fonts.py", line 11, in <module>
HEADER_FONT = Font(
File "C:\Users\Tommy's Gaming PC\AppData\Local\Programs\Python\Python39\lib\tkinter\font.py", line 72, in __init__
root = tkinter._get_default_root('use font')
File "C:\Users\Tommy's Gaming PC\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 297, in _get_default_root
raise RuntimeError(f"Too early to {what}: no default root window")
RuntimeError: Too early to use font: no default root window
uj5u.com熱心網友回復:
這個問題可能是因為渲染字體需要一個初始化的視窗,因為在我使用的幾乎每個庫上,它都需要 OpenGL 背景關系。您可能必須先像這樣創建一個視窗
from tkinter import *
window=Tk()
window.title('Hello Python')
window.geometry("300x200 10 20")
# place your font here
window.mainloop()
您應該在創建視窗后將匯入移動到
uj5u.com熱心網友回復:
這是因為您在沒有根視窗的單獨檔案中定義字體。你可以通過編輯你的字體攜帶檔案來解決這個錯誤
# Your imports here
from tkinter import Tk
_root = Tk()
# rest of code here
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/345021.html
下一篇:tkinter串列索引超出范圍
