pythonでGUIを作成しています。
機能の一部に、アカウント名とメールアドレスを任意の数記入する場所を作りたいと思っています。
記入する場所をスクロールできるようにしたいとのですがバーが動かなくて困っています。
該当のコードを記載しました。ここだけでもラベルが7のところまでしか表示できず、バーが動いていません。
python
1# tkinter 2from tkinter import * 3import tkinter as tk 4 5class Application(Frame): 6 7 def __init__(self, master=None): 8 Frame.__init__(self,master) 9 master.configure(bg="white") 10 self.pack() #描写 11 self.create_widgets(master) #フォームの作成 12 13 14 15 #フォームの作成 16 def create_widgets(self,master): 17 18 """ 19 スクロールバー Canvas 20 """ 21 22 # フォルダー表示 フレーム 23 frm = Frame(master) 24 frm.pack(padx=10 ,pady=15 , fill="both",expand=1) 25 26 #指摘を頂き変更 27 #canvas = Canvas(frm, width=400, height=150 ,bg="red",scrollregion=(0,0,400,400)) 28 canvas = Canvas(frm, width=400, height=150 ,bg="red") 29 30 31 bar = Scrollbar(frm, orient=VERTICAL) 32 # 指摘を頂き修正 33 #bar.grid(row=0, column=1, sticky="nw") 34 bar.grid(row=0, column=1, sticky="ns") 35 bar.config(command=canvas.yview) 36 37 38 canvas.config(yscrollcommand=bar.set) 39 canvas.grid(row=0, column=0, sticky="news") 40 41 42 # Canvas Widget を配置 43 cframe=Frame(canvas, width=canvas.cget('width')) 44 canvas.create_window((0, 0), window=cframe, anchor="nw") 45 46 47 self.Widget_items = [] 48 for i in range(10): 49 items = [] 50 51 # アカウント名 ラベル 52 L_no = tk.Label(cframe) 53 L_no.configure(text=f"{i+1}", bg="white") 54 L_no.grid(row=i +1, column=0, sticky="nw") 55 items.append(L_no) 56 57 #指摘を頂き追加 58 canvas.update_idletasks() 59 canvas.config(scrollregion=canvas.bbox("all")) 60 61 62if __name__ == "__main__": 63 64 root = Tk() 65 app = Application(master=root) 66 app.mainloop() 67 68 69
他のを調べて、
bar.config(command=canvas.yview) canvas.config(yscrollcommand=bar.set)
ここが重要であると思って追加しているのですが、あとは何が原因でしょうか?
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。