Python 3.x Tkinter跟踪方法在预期为0时返回3个变量

Python 3.x Tkinter跟踪方法在预期为0时返回3个变量,python-3.x,tkinter,Python 3.x,Tkinter,我试图创建一个动态gui,根据组合框中选择的值更改其标签。我正在尝试使用.trace方法来实现这一点。我收到以下错误,当前设置区域_标签采用0个位置参数,但给出了3个 我已在下面附上我的代码的相关部分 from tkinter import * import tkinter as tk from tkinter import ttk window = Tk() window.geometry('1300x700') window.title('Volumetric Calculator')

我试图创建一个动态gui,根据组合框中选择的值更改其标签。我正在尝试使用.trace方法来实现这一点。我收到以下错误,当前设置区域_标签采用0个位置参数,但给出了3个

我已在下面附上我的代码的相关部分

from tkinter import *
import tkinter as tk
from tkinter import ttk



window = Tk()
window.geometry('1300x700')
window.title('Volumetric Calculator')


areastcboxv = StringVar()
areastcbox = ttk.Combobox(window, textvariable = areastcboxv, values = ('Discrete','Normal','Truncated Normal', 'Log Normal'))
areastcbox.grid(row = 1, column = 2)
areastcbox.set('Discrete')

areastcboxv.trace("w", area_labels)

def area_labels():


    if areastcboxv.get() == "Discrete":
        lvlabel = Label(text = 'Base Case Value', fg = 'black', bg = 'white', width = 17 ).grid(row = 0, column = 3)
        bvlabel = Label(text = 'Standard Dev', fg = 'black', bg = 'white', width = 17 ).grid(row = 0, column = 4)
        hvlabel = Label(text = 'High Value', fg = 'black', bg = 'white', width = 17).grid(row = 0, column = 5)
        lplabel = Label(text = 'Low Probability', fg = 'black', bg = 'white', width = 17).grid(row = 0, column = 6)
        bplabel = Label(text = 'Base Probability', fg = 'black', bg = 'white', width = 17).grid(row = 0, column = 7)
        hplabel = Label(text = 'High Probability', fg = 'black', bg = 'white', width = 17, state = DISABLED ).grid(row = 0, column = 8)

    elif areastcboxv.get() == "Normal":
        lvlabel = Label(text = 'Base Case Value', fg = 'black', bg = 'white', width = 17 ).grid(row = 0, column = 3)
        bvlabel = Label(text = 'Standard Dev', fg = 'black', bg = 'white', width = 17 ).grid(row = 0, column = 4)
        hvlabel = Label(text = 'High Value', fg = 'black', bg = 'white', width = 17, state = DISABLED ).grid(row = 0, column = 5)
        lplabel = Label(text = 'Low Probability', fg = 'black', bg = 'white', width = 17, state = DISABLED ).grid(row = 0, column = 6)
        bplabel = Label(text = 'Base Probability', fg = 'black', bg = 'white', width = 17, state = DISABLED ).grid(row = 0, column = 7)
        hplabel = Label(text = 'High Probability', fg = 'black', bg = 'white', width = 17, state = DISABLED ).grid(row = 0, column = 8)

    elif areastcboxv.get() == "Truncated Normal":
        pass

    elif areastcboxv.get() == "Log Normal":
        pass

window.mainloop()

跟踪将提供三个参数。 将您的函数更改为 区域标签*事件 或 标签A、b、c区

在这里寻找解释

import tkinter as tk
from tkinter import ttk

def selection(*trace_event):
    print('the trace arguments',trace_event)
    chosen['text'] = options.get()

ROOT = tk.Tk()
val = tk.StringVar()
options = ttk.Combobox(textvariable=val,
                       values=('a','b','c'))
options.grid()
val.trace('w', selection)
chosen = tk.Label(text='No selection')
chosen.grid()
ROOT.mainloop()