Tkinter按钮帮助

2024-06-26 18:00:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有按钮的类,它在gui构建时自动运行命令(我不希望它这样做),但之后就不再工作了。我做错什么了?像endcommand这样的内置命令可以正常工作。在

相关摘录(忽略开头的缩进问题)

class GuiPart(object):    
def __init__(self, master, queue, endCommand):
    self.queue = queue
    # Set up the GUI
    #tkinter.Button(master, text='Done', command=endCommand).grid(row=6,column=6)

    tkinter.Button(text='Update Variables', command=self.updateValues()).grid(row=3)

    Lp_pacingState = tkinter.Label(text="p_pacingState")
    Lp_pacingState.grid(row=1, column=3)
    Tp_pacingState = tkinter.Label(bg="white", relief="ridge",justify="center",width=9)
    Tp_pacingState.grid(row=1, column=4)
    ....

    self.textBoxes = {"p_pacingState" : Tp_pacingState, "p_pacingMode" : Tp_pacingMode, 
                 "p_hysteresis" : Tp_hysteresis, "p_hysteresisInterval" : Tp_hysteresisInterval,
                 "p_lowrateInterval" : Tp_lowrateInterval, "p_vPaceAmp" : Tp_vPaceAmp,
                 "p_vPaceWidth" : Tp_vPaceWidth, "p_VRP" : Tp_VRP}

#def updateValues(self,input):
def updateValues(self):
    testInput = ["p_pacingState=3", "garbage=poop", "p_VRP=5"]
    for updates in testInput:
        print("zzzz")
        var = updates.split("=")
        try:
            self.textBoxes[var[0]].config(text = var[1])
        except:
            pass

所以我得到“zzzz”打印了3次在图形用户界面的建设(标签不更新他们的文本,虽然)和按钮不起作用后。 另外,如果有更好的方法来更新盒子,请告诉我。我从一个没有特定顺序或关联的流中获取输入。在

提前谢谢


Tags: text命令selfqueuetkintervardefcolumn
1条回答
网友
1楼 · 发布于 2024-06-26 18:00:12

执行此操作时:

command=self.updateValues()

您正在调用函数self.updateValues(因为())。该函数调用的结果被分配给命令属性,这不是您想要的。您需要删除(),以便command属性获得对方法的引用,而不是调用方法的结果。在

相关问题 更多 >