使用tkinter按钮打开一个新窗口

时间:2019-04-05 20:10:44

标签: python python-3.x tkinter

您可以在我的代码上看到,我正在尝试使用按钮打开一个新窗口。窗口打开,但是欢迎消息没有显示出来,就像我想要的那样。

它显示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()

我想用欢迎消息打开一个新窗口。

3 个答案:

答案 0 :(得分:1)

您必须使用.get()StringVarIntVar等中获取价值-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不喜欢其他方式。