簡體   English   中英

使用tkinter按鈕打開一個新窗口

[英]Opening a new window using tkinter button

如您在我的代碼上所看到的,我試圖用按鈕打開一個新窗口。 窗口打開,但是歡迎消息沒有以我想要的方式顯示。

它顯示歡迎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()

我想用歡迎消息打開一個新窗口。

你必須使用.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(..)

它為label3分配了None ,因為grid()/pack()/place()返回None

您必須分兩步完成

label3 = tk.Label(..)
label3.grid(..)

print(name + " " + surname)怎樣?

如果這些變量具有正確的值,那么您應該嘗試以幾種不同的方式重寫腳本,例如:

labelText = "Welcome " + name + " " + surname
label3 = tk.Label(text=labelText)

您可以使用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不喜歡其他方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM