您可以在我的代码上看到,我正在尝试使用按钮打开一个新窗口。窗口打开,但是欢迎消息没有显示出来,就像我想要的那样。
它显示Welcome PY_VAR0 PY_VAR1。但我想显示一个名字。
我尝试使用return命令从getvalue()
函数返回变量,但是它不起作用。
def getvalue():
name.get()
surname.get()
def newwindow():
window.destroy()
window2 = tk.Tk()
label3 = tk.Label(text="Welcome {} {}".format(name,surname)).grid()
window2.mainloop()
button = tk.Button(window,text="Submit",command=getvalue and newwindow).grid(row=3,column=1)
window.mainloop()
我想用欢迎消息打开一个新窗口。
答案 0 :(得分:1)
您必须使用.get()
从StringVar
,IntVar
等中获取价值-name.get()
,surname.get()
label3 = tk.Label(text="Welcome {} {}".format(name.get(), surname.get()))
label3.grid()
注意:要设置值,您将必须使用variable.set(value)
而不是variable = value
顺便说一句:您在此行(以及其他行)中犯了大错误
label3 = tk.Label(..).grid(..)
将None
分配给label3
,因为grid()/pack()/place()
返回None
您必须分两步进行
label3 = tk.Label(..)
label3.grid(..)
答案 1 :(得分:0)
print(name + " " + surname)
发生了什么?
如果这些变量具有正确的值,那么您应该尝试以几种不同的方式重写脚本,例如:
labelText = "Welcome " + name + " " + surname
label3 = tk.Label(text=labelText)
答案 2 :(得分:0)
您可以使用messagebox
打开新窗口并打印欢迎消息。这真的很简单。
from tkinter import Tk, Button
# Make sure to import messagebox like this, otherwise you might get issues
import tkinter.messagebox
def messagebox():
tkinter.messagebox.showinfo('title','Welcome!')
def main():
width, height = 500, 500
root = Tk()
root.geometry(f'{width}x{height}')
root.title('My window')
button = Button(root, width=150, height=70, command=messagebox)
button.pack()
root.mainloop()
if __name__ == "__main__":
main()
请import messagebox
使用显示方式,我不确定为什么,但是tkinter
不喜欢其他方式。