Python Tkinter文本未按预期显示

Python Tkinter文本未按预期显示,python,tkinter,request,python-requests,Python,Tkinter,Request,Python Requests,最近,我决定玩一玩tkinter,我想从一个网站上获取标题并将其放在tkinter窗口中 我设法获取了标题,但当我运行代码时,数据被弄乱了,很难读取。有人知道我怎样才能使它可读吗?谢谢 main.py from tkinter import * from alx_tk import * window = Tk() window.title("Welcome to LikeGeeks app") window.geometry('1920x1080') txt = E

最近,我决定玩一玩tkinter,我想从一个网站上获取标题并将其放在tkinter窗口中

我设法获取了标题,但当我运行代码时,数据被弄乱了,很难读取。有人知道我怎样才能使它可读吗?谢谢

main.py

from tkinter import *
from alx_tk import * 

window = Tk()

window.title("Welcome to LikeGeeks app")

window.geometry('1920x1080')

txt = Entry(window,width=10)

txt.grid(column=0, row=0)

lbl = Label(window, text="Response")

lbl.grid(column=0, row=1)



hd = Label(window, text="Headers")

hd.grid(column=0, row=2)

header_ = Label(window, text="Results")
header_.grid(column=0, row=3)

def clicked():

   # res = "Welcome to " + txt.get()
    resp = get_req(txt.get())
    lbl.configure(text= resp)
   # lbl.configure(text= res)
def header():
    rss = headerss(txt.get())
    header_.configure(text= rss)    
btn = Button(window, text="Start", command=clicked)

btn.grid(column=2, row=1)
hdbutton = Button(window, text="Start", command= header)
hdbutton.grid(column=2, row=2)
window.mainloop()

alx_tk.py

import requests

def get_req(target):
    resp = requests.get(target)
    return resp

def headerss(target):
    test =  []
    resp = requests.get(target)
    for key ,value in resp.headers.items():
        a = key + value
        test.append(a)
    return test



再次感谢

您似乎想要生成多行输出。标签是一个糟糕的选择。虽然您可以使用标签,但与使用文本小部件相比,它可能需要更多的工作并产生较弱的用户体验

文本小部件内置了包装功能,因此更容易包装长cookie。文本小部件还支持滚动,而标签不支持滚动。文本小部件还支持选择和复制文本

因此,让我们从将标签更改为文本小部件开始:

header_ = Text(window)
header_.grid(column=0, row=3, columnspan=3)
接下来,您希望在键和值之间有一个选项卡或空格:

for key , value in resp.headers.items():
    a = f"{key}\t{value}"
    test.append(a)
最后,将列表转换为一个由换行符分隔的值字符串,然后使用
insert
将该字符串添加到文本小部件中:

def header():
    headers = headerss(txt.get())
    rss = "\n".join(headers)
    header_.delete("1.0", "end")
    header_.insert("end", rss)

您似乎想要生成多行输出。标签是一个糟糕的选择。虽然您可以使用标签,但与使用文本小部件相比,它可能需要更多的工作并产生较弱的用户体验

文本小部件内置了包装功能,因此更容易包装长cookie。文本小部件还支持滚动,而标签不支持滚动。文本小部件还支持选择和复制文本

因此,让我们从将标签更改为文本小部件开始:

header_ = Text(window)
header_.grid(column=0, row=3, columnspan=3)
接下来,您希望在键和值之间有一个选项卡或空格:

for key , value in resp.headers.items():
    a = f"{key}\t{value}"
    test.append(a)
最后,将列表转换为一个由换行符分隔的值字符串,然后使用
insert
将该字符串添加到文本小部件中:

def header():
    headers = headerss(txt.get())
    rss = "\n".join(headers)
    header_.delete("1.0", "end")
    header_.insert("end", rss)

什么是“乱七八糟、难以阅读”呢?怎么搞砸了?那张照片什么都没告诉我们。它以小字体显示一个很长的文本字符串。当然,这很难理解。你想做什么而不是它在做什么?你想把它包起来吗?有大一点的字体吗?每个标题后面的换行符?还有别的事吗?这和tkinter没什么关系。你需要格式化你的请求。谷歌告诉我,这可能会有帮助,或者你可以删除帖子,然后问一个新的问题Q@Atlas435:部分与tkinter有关。它们在标签中显示列表,tkinter将向数据添加大括号,因为它是列表而不是字符串。然而,这只是问题的一部分,“混乱和难以阅读”是什么意思?怎么搞砸了?那张照片什么都没告诉我们。它以小字体显示一个很长的文本字符串。当然,这很难理解。你想做什么而不是它在做什么?你想把它包起来吗?有大一点的字体吗?每个标题后面的换行符?还有别的事吗?这和tkinter没什么关系。你需要格式化你的请求。谷歌告诉我,这可能会有帮助,或者你可以删除帖子,然后问一个新的问题Q@Atlas435:部分与tkinter有关。它们在标签中显示列表,tkinter将向数据添加大括号,因为它是列表而不是字符串。不过,这只是问题的一部分。非常感谢!我得到这个错误tho:a=f“{key}\t{value}”^SyntaxError:invalid syntaxe非常感谢!我得到了以下错误:a=f“{key}\t{value}”^SyntaxError:无效语法