簡體   English   中英

Python控制台輸出到變量

[英]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.

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