简体   繁体   中英

Python3 Tkinter fonts not working

I am using python 3.3 with tkinter, and the package python3-tk is installed. In most docs the old "import tkFont" is used, which is not working any more.

This is supposed to work:

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

However, I get this exception on the second line:

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'

I checked http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.html and http://www.tkdocs.com/tutorial/fonts.html which were the most useful tkinter docs so far.

Unfortunately I still can't figure out what I am doing wrong.

You should import font not fonts . Also, if the code you posted is actual code, you are neglecting to create a root window before working with fonts. You must create a root window first.

from tkinter import font
import tkinter as tk
...
root = tk.Tk()
...
appHighlightFont = font.Font(family='Helvetica', size=12, weight='bold')
font.families()
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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM