sorunun kök Tkinter modülü Tkinter
(sermaye "T") piton 2 adlandırılmış olmasıdır .x ve tkinter
(küçük harf "t") python 3.x içinde.
Python 2 hem de kod çalışır hale getirmek için ve 3 böyle bir şey yapabilirsiniz:
Wildcard imports (from <module> import *) should be avoided
rağmen:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
Ancak PEP8 joker ithalatı hakkında şöyle demektedir PEP8'i göz ardı eden sayısız öğretici, PEP8'e uygun şekilde içe aktarma yolu şu şekilde olacaktır:
Bu şekilde içe aktarırken, tüm çizgi komutlarını tk.
(örn .: root = tk.Tk()
, vb.) Ile önek yapmanız gerekir. Bu, kodunuzun daha küçük bir yazım pahasına daha kolay anlaşılmasını sağlayacaktır. Hem tkinter hem de ttk'ın sıklıkla birlikte kullanıldığı ve aynı isimle sınıfları içe aktardığı göz önüne alındığında, bu iyi bir şeydir. Zen of python belirtildiği gibi: "açık, örtük olmaktan iyidir".
Not: as tk
kısım isteğe bağlıdır, ama biraz daha az yazar yapalım: tk.Button(...)
tkinter.Button(...)
vs