在python - tkinter中将滚动条添加到我的主窗口

时间:2016-05-22 08:24:33

标签: python tkinter

我正在使用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()

这会废弃数据并产生这样的输出,

enter image description here

你可以看到我无法向下或向右滚动以查看我现在可以做的所有数据吗?

我尝试过:

  1. 我尝试在放置x和y轴时使用滚动条功能添加滚动条,但滚动条不起作用。

    scrollbar =滚动条(gui) scrollbar.pack(side = RIGHT,fill = Y) scrollbar.config(command = channelInfo)

  2. 而是黑屏正在移动。

    1. 我提到google我找到了滚动窗口,因为我是初学者,所以我无法抓住这些概念。
    2. 请帮帮我。

      谢谢

1 个答案:

答案 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)

这将使您更好地管理创建的小部件,此外,这应该允许您按预期使用滚动条