【问题标题】:Variable trace method error when using Tkinter使用 Tkinter 时的变量跟踪方法错误
【发布时间】:2017-06-21 06:12:32
【问题描述】:

我有两个字符串变量,我想为同一个回调跟踪这些变量用于两个下拉菜单。

当我将两个变量都跟踪到同一个函数时,就会出现问题。我得到了 AttributeError,这是一个错误示例

import Tkinter as tk
import ttk

class SampleApp(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.handlersList = ["handlr1", "handlr2", "handlr3"]
        self.modemList = ["modem1","modem2","modem3"]

        self.selctdModm = tk.StringVar(self)
        self.selctdModm.set("Select a Modem")
        self.defaultModem = "Select a Modem"
        self.modemList.insert(0,self.defaultModem)

        self.selctdModm.trace('w', self.start) 
        self.drop_Menu_Modems = ttk.OptionMenu(self, self.selctdModm,
                                         self.modemList[0],
                                         *self.modemList,
                                         command= "")
        self.drop_Menu_Modems.pack()
        self.drop_Menu_Modems.config( width = 15)




        self.selctdHandler = tk.StringVar(self)
        self.selctdHandler.set("Select a Handler")
        self.defaultHandlr = "Select a Handler"
        self.handlersList.insert(0,self.defaultHandlr)  

        self.selctdHandler.trace('w', self.start)                
        self.drop_Menu_handlrs = ttk.OptionMenu(self, self.selctdHandler,
                                                self.handlersList[0],
                                                *self.handlersList,
                                                command= "")
        self.drop_Menu_handlrs.pack()
        self.drop_Menu_handlrs.config(width = 15 )


    def start(self, *args):

        handler = self.selctdHandler.get()



app = SampleApp()
app.mainloop()

【问题讨论】:

    标签: python python-2.7 tkinter tk tkinter-canvas


    【解决方案1】:

    在您向selctdModm 添加跟踪时,没有创建self.selctdHandler,因此您得到AttributeError

    self.selctdHandler 初始化之后移动self.selctdModm.trace('w', self.start)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      相关资源
      最近更新 更多