如何使按钮更改变量的值? Python Tkinter

问题描述

我有这个代码

class Zfraction{
public:
friend std::ostream& operator<<(std::ostream& display,Zfraction const& b);
}

但是std::ostream& Zfraction::operator<<(std::ostream &display,Zfraction const& b){ } 仍为from tkinter import * root = Tk() variabletochange = "Something else" button = Button(root,text="change a variable",command="variabletochange=something") print(variabletochange) 。 经过一些调试后,我发现该按钮在函数结束后运行。我可能是错的。 有修复程序吗?

解决方法

您可以定义一个函数来更改变量,像这样-

import tkinter

root = tkinter.Tk()
variableToChange = "Something else"

def ChangeVar(string):
    global variableToChange
    variableToChange = string

def stringP():
   ChangeVar('Noice')
   print(variableToChange)

button = tkinter.Button(root,text="change a variable",command = stringP)
button.pack()

PS-不要使用from tkinter import *并不是一个好主意。

,

您需要这样定义一个函数(也许我不太好)

def changeVar():
    VariableToChange ="Something"

因此代码变为:

def changeVar():
    VariableToChange ="Something"
    print(VariableToChange)
from tkinter import *
Root=Tk()
VariableToChange = "Something Else"
Button = Button(text="Change the Variable",command=changeVar)
button.pack()
root.mainloop()

请确保不要在此类函数之后使用()

Button(command=changeVar())

除了它之外,它不会像您一样运行 同样,执行command =时不要使用() 否则会报错

我希望我的建议有用。

,

Tkinter.Button具有命令参数,您可以在其中放置要运行的函数。

像这样:

from tkinter import *

variableToChange = "Something else"

def ChangeValue():
    global variableToChange
    variableToChange = "New value"

root = Tk()
button = Button(root,command=ChangeValue).pack(padx=10,pady=10)

root.mainloop()

print(variableToChange)

在这里,当您按下按钮时,变量的值将被更改,而当您关闭应用程序时,该值将被打印到终端上。

有关更多文档:Tkinter Button Command Documentation