2016-05-22 24 views
0

私はTkinterを使ってPythonでGUIプログラミングを学んでいます。私は初心者ですので、私を無礼にしてはいけません。メインウィンドウにスクロールバーを追加するpython-tkinter

メインウィンドウにスクロールバーを追加する際に問題が発生します。ここで

は私のコードです:

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軸を配置したが、スクロールバーが機能していないで、スクロールバーの機能を使用してスクロールバーを追加しようとした:私は試してみました何

    スクロールバー=スクロールバー(GUI) scrollbar.pack(側面= RIGHT = Yを満たす) scrollbar.config(コマンド= channelInfo)

代わりにブラック画面が移動しています。

  1. 私はスクロールしたウィンドウが見つかりました。私は初心者であるため、これらの概念をつかむことができませんでした。

親切に私を助けてください。

はありがとう

+0

私は理解していません - あなたのクラスがそれをカバーしていないので、スクロールバーの使用は許可されていませんか?そのような場合は、何らかの「ページ」機能を作成する必要があります。そうでない場合は、Google経由で見つけたスクロールバーの結果を使用してください。 – TigerhawkT3

+0

@ TigerhawkT3いいえ、これは私がメッセージボックスと別のウィンドウを作成する際に教えてくれなかった私のファーストクラスです。彼らはちょうどメインウィンドウを作成してラベルを追加するよう教えてくれました。私はスクロールされたウィンドウのような簡単な選択肢を見つけるのではなく、私のメインウィンドウにスクロールバーを作成することに喜んでいます。 –

答えて

0
今後の参考のために

のベストプラクティスは、そのようなニーズが何であるかに応じて、フレーム、キャンバス、として、あなたのコンテンツを管理するために、その中にウィジェットを作成し、あなたのルートウィンドウまたはTkの()内のすべてを固執いけません。このページは、パイソンで必要な情報のほとんどを提供しています。Tkinterライブラリ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.pack() 

label = Label(frame, text='Paste the link below to crawl Youtube',fg='blue') 
entry = Entry(frame ,textvariable=link) 

これはあなたの作成したウィジェットのより良い管理を提供しますが、さらに、これはあなたがスクロールバーを使用できるようにする必要があります

関連する問題