问题描述
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)
在这里,当您按下按钮时,变量的值将被更改,而当您关闭应用程序时,该值将被打印到终端上。