gpt4 book ai didi

python - 跟踪变量 - ComboBox Tkinter

转载 作者:行者123 更新时间:2023-11-30 22:46:13 25 4
gpt4 key购买 nike

我正在尝试使用 ComboBox 小部件跟踪变量。当我更改 ComboBox 值时,出现以下错误:

AttributeError: 'StringVar' object has no attribute '_report_exception'

我做错了什么?

import tkinter as tk
from tkinter import ttk, StringVar

class TEST(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.parent = parent

self.estvalue = StringVar()

self.pestanas = ttk.Notebook(self.parent)
self.geometria = ttk.Frame(self.pestanas)
self.viento = ttk.Frame(self.pestanas)
self.topografia = ttk.Frame(self.pestanas)
self.pestanas.add(self.geometria, text="Parámetros Globales")
self.pestanas.add(self.viento, text="Viento")
self.pestanas.grid(sticky=tk.W, pady=6, padx=6)
Estructura = ["Edificios",
"Chimeneas, Tanques y Estructuras similares",
"Carteles llenos",
"Carteles abiertos y Estructuras similares"]
self.Estructura = tk.LabelFrame(self.geometria, text="Estructura",
labelanchor="nw", borderwidth="2",
relief="groove", pady=5, padx=5)
self.Estructura.grid(column=0, row=0, sticky=tk.W)
self.Est = ttk.Label(self.Estructura, text="Tipo de Estructura")
self.Est.grid(column=0, row=0, sticky=tk.W)
self.Est = ttk.Label(self.Estructura, text="Tipo de Estructura")
self.Est.grid(column=0, row=1, sticky=tk.W)
self.boxest = ttk.Combobox(self.Estructura, textvariable=self.estvalue,
state='readonly', width=36)
self.boxest['values'] = Estructura
self.boxest.current(0)
self.boxest.grid(column=1, row=0, sticky=tk.E, padx=5)

self.estvalue.trace_variable("w",self.eventest())

def eventest(self):
if self.estvalue.get() == "Edificios":
print("foo")
else:
print("bar")

def main():
root = tk.Tk()
app = TEST(root)
app.grid()
root.title("App")
root.focus_force()
root.minsize(width=600, height=390)
root.columnconfigure(0, weight=1)
root.mainloop()

if __name__ == '__main__':
main()

最佳答案

您必须为trace 提供对函数的引用。相反,您调用该函数并提供跟踪该函数返回的任何内容。

像这样设置跟踪(注意缺少的 ())

self.estvalue.trace_variable("w",self.eventest)

跟踪会将三个值传递给函数,因此您需要修改函数以接受这些参数,即使您不使用它们。

关于python - 跟踪变量 - ComboBox Tkinter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com