我正在使用Tkinter学习使用Python进行GUI编程。我是初学者所以请不要对我不礼貌。
我在向主窗口添加滚动条时遇到问题。
这是我的代码:
from tkinter import *
from bs4 import BeautifulSoup
import re
import requests
def channelInfo():
Link = link.get()
r = requests.get(Link)
soup = BeautifulSoup(r.content)
channelName = "Channel Name: " + soup.title.string
firrt = Label(text=channelName,fg='yellow',bg='black').place(x=0,y=0)
var = None
var1 = None
var3 = None
var4 = None
placer =0
placer1 =0
adjust = 0
for i in soup.find_all('a',class_="yt-uix-sessionlink yt-uix-tile-link spf-link yt-ui-ellipsis yt-ui-ellipsis-2"):
var = i.text
second = Label(text=var,fg='black',bg='white').place(x=200,y=40+adjust)
adjust+=20
desc = soup.find_all(attrs={"name":"description"})
DESC = desc[0]['content'].encode('utf-8')
third = Label(text=DESC,fg='black',bg='yellow').place(x=0,y=20)
for j in soup.find_all('li'):
var1=j.text
varr = re.findall('[0-9]+,[0-9]+ views',var1)
for views in varr:
var3 = Label(text=views,fg='blue').place(x=650,y=40+placer)
placer+=20
for k in soup.find_all('a',class_="yt-uix-sessionlink yt-uix-tile-link spf-link yt-ui-ellipsis yt-ui-ellipsis-2"):
links = k.get("href")
final = Link+links
var4 = Label(text=final).place(x=750,y=40+placer1)
placer1+=20
gui = Tk()
gui.geometry('500x400')
gui.title('The Youtube Crawler')
label = Label(text='Paste the link below to crawl Youtube',fg='blue')
label.pack()
link = StringVar()
entry = Entry(gui,textvariable=link)
entry.pack()
channel = Button(text='Crawl this channel',fg='white',bg='black',width=30,command=channelInfo)
channel.place(x=10,y=45)
'''
specific = Button(text='Inform about this video',fg='black',bg='white',width=30)
specific.place(x=270,y=45)
'''
entry.focus_set()
url = entry.get()
gui.mainloop()
这会废弃数据并产生这样的输出,
你可以看到我无法向下或向右滚动以查看我现在可以做的所有数据吗?
我尝试过:
我尝试在放置x和y轴时使用滚动条功能添加滚动条,但滚动条不起作用。
scrollbar =滚动条(gui) scrollbar.pack(side = RIGHT,fill = Y) scrollbar.config(command = channelInfo)
请帮帮我。
谢谢
答案 0 :(得分:0)
未来参考的最佳实践,不要在根窗口或Tk()中粘贴所有内容,在其中创建小部件来管理您的内容,例如Frame,Canvas,具体取决于您的需求。此页面提供了大部分(如果不是全部)pythons Tkinter library http://effbot.org/tkinterbook/
所需的信息由于您的窗口小部件没有组织,因此一旦打包它们,它们就会被添加到您的主窗口中(几乎是随机的)。
滚动条,根据effbot.org:
何时使用滚动条小工具
此小部件用于实现滚动的列表框,画布和 文本字段。
在许多其他事情中,我目前在你的代码中看到你这样做:
third = Label(text=DESC,fg='black',bg='yellow').place(x=0,y=20)
label = Label(text='Paste the link below to crawl Youtube',fg='blue')
通过执行此操作,您的小部件将默认为应用的根窗口,应避免使用。
尝试创建一个Frame并将所有小部件放在其中:
frame = Frame()
frame.pack()
label = Label(frame, text='Paste the link below to crawl Youtube',fg='blue')
entry = Entry(frame ,textvariable=link)
这将使您更好地管理创建的小部件,此外,这应该允许您按预期使用滚动条