用
启动程序有什么区别from tkinter import *
和
from tkinter import tix as tk
因为后者我有问题,所以问题。我已经将所有tkinter元素从普通的' Button'但是,这并不是它唯一的区别。
特别是我在以下代码位中遇到问题:
class OptionMenus(OptionMenu):
def __init__(self, master, status, *fonts):
self.var = StringVar(master)
self.var.set(status)
OptionMenu.__init__(self, master, self.var, *fonts,
command = update_config)
self.config(width = "9", height = "1")
或
class OptionMenus(tk.OptionMenu):
def __init__(self, master, status, *fonts):
self.var = tk.StringVar(master)
(self.var).set(status)
(tk.OptionMenu).__init__(self, master, self.var, *fonts,
command = update_config)
self.config(width = "9", height = "1")
(以防我如何称呼它)
fonts_menu = OptionMenus(buttons, strings[17], *fonts)
后者产生错误:" TypeError: init ()取2到3个位置参数,但给出4个。" 第一个工作正常。
答案 0 :(得分:3)
tix和tk是两个独立的模块。它们有一些具有相似名称的小部件,但它们不是可互换的库。
如果你想使用tix,你应该从tkinter单独导入它,你应该不进行全局导入,因为它会导致模糊,这可能是你遇到问题的原因。
像这样导入它们:
import tkinter as tk
from tkinter import tix
然后,使用这样的小部件:
tk.Button(...)
tix.OptionMenu(...)
然后清楚地表明哪些小部件来自哪些库。