1
ComboBox
위젯을 사용하여 변수를 추적하려고합니다.추적 변수 - ComboBox Tkinter
AttributeError: 'StringVar' object has no attribute '_report_exception'
내가 잘못 뭐하는 거지 : 나는 다음과 같은 오류를 얻을 ComboBox
값을 변경하면?
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()
그게 전부는 아닙니다. 핸들러의 정의는 세 개의 인수를 더 받아들이도록 변경되어야한다 : def eventest (self, a, b, c) :'. 추가 인수에 무엇이 들어 있는지 확실하지 않지만이 경우 무시할 수 있습니다. – martineau
@martineau : 마지막 단락에서이 문제를 다루었습니다. 그들이 무엇인지에 관해서는 http://stackoverflow.com/questions/29690463/what-are-the-arguments-to-tkinter-variable-trace-method-callbacks을 참조하십시오. –
죄송합니다, 나는 그 부분을 놓쳤습니다. 관계없이, 링크 주셔서 감사합니다. – martineau