【问题标题】:Python3 Tkinter fonts not workingPython3 Tkinter 字体不起作用
【发布时间】:2015-12-16 02:19:42
【问题描述】:

我正在使用带有 tkinter 的 python 3.3,并且安装了包 python3-tk。在大多数文档中,使用的是旧的“import tkFont”,它不再起作用了。

这应该可以工作:

from tkinter import font
appHighlightFont = font.Font(family='Helvetica', size=12, weight='bold')
font.families()

但是,我在第二行得到了这个异常:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.3/tkinter/font.py", line 92, in __init__
    root.tk.call("font", "create", self.name, *font)
AttributeError: 'NoneType' object has no attribute 'tk'

我检查了http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.htmlhttp://www.tkdocs.com/tutorial/fonts.html,它们是迄今为止最有用的 tkinter 文档。

不幸的是,我仍然无法弄清楚我做错了什么。

【问题讨论】:

标签: python python-3.x fonts tkinter python-import


【解决方案1】:

您应该导入font 而不是fonts。此外,如果您发布的代码是实际代码,您将忽略在使用字体之前创建根窗口。您必须先创建一个根窗口。

from tkinter import font
import tkinter as tk
...
root = tk.Tk()
...
appHighlightFont = font.Font(family='Helvetica', size=12, weight='bold')
font.families()

【讨论】:

  • 你说得对,我编辑了上面的代码。我仍然收到错误消息。
  • @percidae:在使用字体之前,您需要创建一个根窗口。
  • 现在它似乎工作了。奇怪,因为我在带有根窗口的 *.py 文件中偶然发现了这个错误。无论如何谢谢:)
【解决方案2】:
from tkinter import *
from time import sleep

window = Tk()
window.geometry("350x400")
window.title("tkinter!")

lbl = Label(window, text="this is a lable", size=12)
lbl.pack()

sleep(1)

lbl.configure(text="now it is a big lable", size=48)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多