【发布时间】:2015-04-08 14:17:43
【问题描述】:
和启动程序有什么区别
from tkinter import *
和
from tkinter import tix as tk
因为后一个我遇到了问题,因此提出了问题。我已将所有 tkinter 元素从普通的 'Button' 更改为 'tk.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 个。” 第一个效果很好。
【问题讨论】:
-
可能值得指出的是,
tkinter.OptionMenu和tkinter.tix.OptionMenu是完全不同的类,尽管它们具有相同的名称。例如,它们的初始化签名不同:分别为(self, master, variable, value, *values, **kwargs)和(self, master, cnf={}, **kw)。 -
非常感谢,我会马上调查的。 tix one 有更多的功能和选项吗?为什么翻倍了?