PHP前端开发

Tkinter 条目返回默认值,而不是输入的值

百变鹏仔 1天前 #Python
文章标签 条目
问题内容

我试图让按钮返回我在“条目”字段中输入的任何值,但它始终返回 xml 文件中设置的默认值。该程序在报告值时似乎忽略了我在框中输入的内容。

这是我的代码:

from tkinter import *import tkinter as tkfrom formation import appbuilderroot = tk.tk()root.withdraw()app = appbuilder(path="calculator.xml")def calculate(event=none):    # event parameter needs to be there because using the bind method passes an event object    # access the expr_var we created earlier to determine the current expression entered    expr = app.expr_var.get()    # evaluate the expression    try:        result = expr    except exception:        # if the expression entered was malformed and could not be evaluated        # we will display an error message instead        result = "invalid expression"    # display the result    app.result.config(text=result)app.connect_callbacks(globals())app.mainloop()

这将调用包含以下代码的 xml 文件:

<?xml  version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?><tkinter.tk>        <meth>        <arg></arg>        </meth>        <meth>        <arg></arg>        </meth>        <meta>    <tkinter.stringvar></tkinter.stringvar>    <tkinter.entry></tkinter.entry>    <tkinter.label></tkinter.label>    <tkinter.button>        <event>" handler="calculate" add="False" /&gt;    </event></tkinter.button></tkinter.tk>

我使用 formationstudio 构建 tkinter gui。我不确定我做错了什么,或者我是否应该采取完全不同的方法。

正确答案

这是因为tk()有两个实例:

删除显式创建的实例。

from formation import AppBuilderapp = AppBuilder(path="calculator.xml")def calculate(event=None):    # event parameter needs to be there because using the bind method passes an event object    # access the expr_var we created earlier to determine the current expression entered    expr = app.expr_var.get()    # evaluate the expression    try:        result = expr    except Exception:        # if the expression entered was malformed and could not be evaluated        # we will display an error message instead        result = "Invalid expression"    # display the result    app.result.config(text=result)app.connect_callbacks(globals())app.mainloop()