添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Tkinter输出到GUI文本框

0 人关注

我是用python创建GUI的新手,我有以下代码,如何使打印命令出现在GUI上而不是命令行上? 我想在GUI中以文本框或某种输出窗口的形式显示打印,这样就可以显示过程了。

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()
    
python
tkinter
iHaag
iHaag
发布于 2021-02-15
1 个回答
Henry
Henry
发布于 2021-02-15
已采纳
0 人赞同

你可以在 loginButton 下面添加一个输出的标签。

output = StringVar()
outputLabel = Label(tkWindow, textvariable = output).grid(row = 5, column = 0)

然后将print(response.text)替换为output.set(reponse.text)来改变你的标签中的文字。

Edit for ScrolledText
Add from tkinter import scrolledtext to the top. Remove output = StringVar() and replace outputLabel = ... with

outputText = scrolledtext.ScrolledText(tkWindow)
outputText.grid(row = 5, column = 0, columnspan = 2)