2017-04-26 2 views
0

スクロールバーを持つリストボックスであるクラスを作成しました。Tkinterスクロールバーウィジェットが正しく動作しません。矢印キーとマウスホイールのスクロールは機能しますが、スクロールバー自体はクリックしません。

問題は、スクロールバーの矢印をクリックするか、バーを上または下に移動しても機能しないということです。

マウスホイールでスクロールしたり、矢印キーでスクロールしたりします。

私のコードで何が問題なのか分かりません。私はあなたがそれを実行し、あなた自身でそれを見ることができるように、それを下に付けています。

from tkinter import ttk 
import tkinter 

class App_Menu(tkinter.Tk): 

def __init__(self, *args, **kwargs): 


    tkinter.Tk.__init__(self, *args, **kwargs) 

    tkinter.Tk.wm_title(self,'test') 

    folder_button = ttk.Button(self, text = 'test', command=lambda: Listbox_Window([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14], 'title', 'test')) 

    folder_button.grid(row=0, column=2, padx=20, pady=5) 


class Listbox_Window(): 


def load_list(self, list1): 

    for item in list1: 
     self.listbox.insert(tkinter.END, item) 
    self.listbox.selection_set(0) 

def __init__(self, list1, w_title, instruction): 

    self.list_window = tkinter.Tk() 
    self.list_window.wm_title(w_title) 

    self.list_window.grab_set() 

    tkinter.Label(self.list_window, text= instruction, font='Verdana 10 bold').pack(pady=5) 
    list_frame = tkinter.Frame(self.list_window) 
    list_frame.pack(expand = 'yes', fill='both') 

    scrollbar = tkinter.Scrollbar(list_frame) 

    self.listbox = tkinter.Listbox(list_frame, width=60, activestyle='dotbox', yscrollcommand=scrollbar.set) 

    self.listbox.pack(side = 'left', fill='both', expand = 'yes', padx=(10,0), pady=10) 
    scrollbar.pack(side='right', fill = 'y',pady = 10, padx=(0,10)) 


    self.load_list(list1) 



app = App_Menu() 
app.mainloop() 

答えて

0

スクロールバーが正しく設定されていません。あなたはそれがクリックされたときにどのような関数を呼び出すべきかを教えていない。スクロールバーを使用するには、双方向の設定が必要です。スクロールバーにはスクロールするウィジェットが指定されていなければなりません。ウィジェットには最新のスクロールバーを伝える必要があります。

あなたは、リストボックスを作成した後、このような何かを追加する必要があり、あなたの場合は

scrollbar.configure(command=self.listbox.yview) 
関連する問題