使用tkinter和tix之间的区别(作为tkinter?)

时间:2015-04-08 14:17:44

标签: python tkinter tix

启动程序有什么区别
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个。" 第一个工作正常。

1 个答案:

答案 0 :(得分:3)

tix和tk是两个独立的模块。它们有一些具有相似名称的小部件,但它们不是可互换的库。

如果你想使用tix,你应该从tkinter单独导入它,你应该进行全局导入,因为它会导致模糊,这可能是你遇到问题的原因。

像这样导入它们:

import tkinter as tk
from tkinter import tix

然后,使用这样的小部件:

tk.Button(...)
tix.OptionMenu(...)

然后清楚地表明哪些小部件来自哪些库。