2017-07-05 31 views
0

私はPythonでGUIを開発しており、実行時に表示されるスクロールバーはありません。矢印付きの空のバーが表示されますが、スクロールバーが内部になく、スクロールバーがまったく機能しません。tkinter - スクロールバーが表示されません

#Scroll Functions 
    def ScrollAll(event): 
     self.topcanvas.config(scrollregion = self.topcanvas.bbox("all")) 
    def on_mousewheel(event): 
     self.topcanvas.yview('scroll',0, 'units') 

    #topframe 
    topframe = Frame(master, background = '#D9F7FE', width = 2100, height = 1700) 
    topframe.place(x = 0, y = 0) 

    #Top canvas 
    self.topcanvas = Canvas(topframe, scrollregion = (0, 0, 1000, 1000)) 
    self.topcanvas.pack(side = TOP, fill = BOTH, expand = TRUE) 
    self.topcanvas.config(width = 2100, height =1700, background = '#D9F7FE') 

    #scroll 
    self.vbar = ttk.Scrollbar(master, orient = 'vertical', command = self.topcanvas.yview) 
    #self.hbar = ttk.Scrollbar(master, orient = 'horizontal', command = self.topcanvas.xview) 
    #self.topcanvas.config(xscrollcommand = self.hbar.set) 
    self.topcanvas.config(yscrollcommand = self.vbar.set) 

    #self.hbar.pack(side = "bottom", fill = "x") 
    self.vbar.pack(side = "right", fill = "y") 
    self.topcanvas.pack(side="left") 
    self.topcanvas.bind_all("<MouseWheel>", on_mousewheel) 

    #frame 
    frame = Frame(self.topcanvas) 
    frame.config(width = 2100, height = 1700,background = '#D9F7FE') 
    self.topcanvas.create_window((0,0), window = frame, anchor = 'nw') 
    frame.bind("<Configure>", ScrollAll) 
+1

コードをさらに拡張して再現性を高めることができますか? – PRMoureu

+2

私はあなたのコードを実際に試したことはありませんが、キャンバスのスクロール領域は決してキャンバス自体より大きくないので、スクロールバーには何もありません。 – jasonharper

+0

@jasonharperスクロール領域を調整して問題を修正しました。どうもありがとうございます – JDawg

答えて

0

スクロール領域は実際のフレームよりも大きくする必要がありました。スクロール領域を増やし、スクロールバーが機能しました。

関連する問題