[英]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()
從獲得價值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(..)
它為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.