[英]Python console output to variable
我在該網站上看到了一些帖子,而涉及類似主題的其他帖子似乎並沒有達到我在python v3中尋找的結果。 我的目標是要有一個彈出窗口,其中包含兩個用於輸入用戶名和密碼的輸入框,然后我可以將其輸出為名為用戶名和密碼的變量,然后依次用於登錄到我已經編寫腳本的網站。 我到目前為止的代碼是:
from tkinter import *
def show_entry_fields():
print("Username: %s\nPassword: %s" % (e1.get(), e2.get()))
master = Tk()
Label(master, text="Username").grid(row=0)
Label(master, text="Password").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Submit', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
在按提交並讓這兩行成為變量之后,如何解決在控制台中顯示的輸出問題,我將陷入困境。 任何幫助或建議,將不勝感激。 提前致謝,
詹姆士
您可以使用tkinter的變量:
username = StringVar()
password = StringVar()
然后在定義textvariable
,添加參數textvariable
:
e1 = Entry(master, textvariable = username)
e2 = Entry(master, textvariable = password)
要從此變量獲取值,請在其上調用.get()
函數。
我想您的問題是“如何在自毀窗口上訪問?” -你不知道
您可以在破壞之前對其進行訪問。
那個怎么樣? -綁定事件並將事件從子項(彈出窗口)綁定到父項,並在觸發提交按鈕后立即生成事件,作為對父項的通知,例如“我即將被銷毀”(請參閱已回答的問題)由Bryan Oakley提供,以獲取更多信息 )。
一件非常重要的事情-窗口只要能返回某些東西就不能破壞自己。 父級從中檢索數據后將其殺死。
您使用例如tkinter.StringVar
來存儲數據。
但是您沒有將它們放在彈出窗口中,而是放在父窗口小部件中,因此即使Entry小部件被銷毀,它們也能幸免。
對於這種方法,請使用來自Stevo的信息,但在構建期間將其作為存儲在父級內部的參數傳遞給彈出窗口。
您還需要使用lambda將參數發送到子例程。 嘗試這個:
from tkinter import *
def show_entry_fields(v1, v2):
print("Username: %s\nPassword: %s" % (v1.get(), v2.get()))
if __name__ == "__main__":
master = Tk()
Label(master, text="Username").grid(row=0)
Label(master, text="Password").grid(row=1)
v1 = StringVar()
v2 = StringVar()
e1 = Entry(master, textvariable=v1)
e2 = Entry(master, textvariable=v2)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Submit', command=(lambda : show_entry_fields(v1, v2))).grid(row=3, column=1, sticky=W, pady=4)
master.mainloop()
更新:我想我應該在宣講時做,所以我在主體部分添加了本地上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.