Python Tkinter输出到GUI文本框
对于使用python创建GUI,我有以下代码,如何使print命令显示在GUI上而不是命令行上? 我想在GUI中以文本框或某种输出窗口的形式显示打印,以便显示流程Python Tkinter输出到GUI文本框,python,tkinter,Python,Tkinter,对于使用python创建GUI,我有以下代码,如何使print命令显示在GUI上而不是命令行上? 我想在GUI中以文本框或某种输出窗口的形式显示打印,以便显示流程 import mechanicalsoup def validateLogin(username, password): #source: https://pythonexamples.org/python- tkinter-login-form/ URL3 = 'mysite' headers = {
import mechanicalsoup
def validateLogin(username, password): #source: https://pythonexamples.org/python- tkinter-login-form/
URL3 = 'mysite'
headers = {
'referer': URL3 + '/',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
}
#print("username entered :", username.get())
#print("password entered :", password.get())
browser.open(URL3, headers=headers) browser.select_form()
browser.form.set("username", username.get())
browser.form.set("password", password.get())
response = browser.submit_selected()
print(response.text)
return
#window
tkWindow = Tk()
tkWindow.geometry('400x150')
tkWindow.title('Tkinter Login Form - pythonexamples.org')
#username label and text entry box
usernameLabel = Label(tkWindow, text="User Name").grid(row=0, column=0)
username = StringVar()
usernameEntry = Entry(tkWindow, textvariable=username).grid(row=0, column=1)
#password label and password entry box
passwordLabel = Label(tkWindow,text="Password").grid(row=1, column=0)
password = StringVar()
passwordEntry = Entry(tkWindow, textvariable=password, show='*').grid(row=1, column=1)
validateLogin = partial(validateLogin, username, password)
#login button
loginButton = Button(tkWindow, text="Login", command=validateLogin).grid(row=4, column=0)
tkWindow.mainloop()
您可以在
登录按钮下方为输出添加标签
:
output = StringVar()
outputLabel = Label(tkWindow, textvariable = output).grid(row = 5, column = 0)
然后将print(response.text)
替换为output.set(response.text)
以更改标签中的文本。编辑滚动文本
将tkinter导入滚动文本中的
添加到顶部。
删除output=StringVar()
并将outputLabel=…
替换为
outputText = scrolledtext.ScrolledText(tkWindow)
outputText.grid(row = 5, column = 0, columnspan = 2)
outputText.delete(1.0, "end") #Delete whatever is currently there
outputText.insert(1.0, response.text) #Insert the response
然后,在validateLogin
中,将output.set(…)
替换为
outputText = scrolledtext.ScrolledText(tkWindow)
outputText.grid(row = 5, column = 0, columnspan = 2)
outputText.delete(1.0, "end") #Delete whatever is currently there
outputText.insert(1.0, response.text) #Insert the response
这只是给出了一个实际工作的空白窗口,文本太大了,无论如何都无法使其成为可滚动的文本框?是的,有一个名为tkinter的小部件,它可以做到这一点。你如何处理输出?@iHaag我编辑了这个问题来解释它