前提・実現したいこと
DBでSELECTを行い、その結果をウィンドウに表示、スクロールバーのscrollregionを結果により増減するコードを作成したいです
発生している問題・エラーメッセージ
frame上にlabelが表示されず、また以下のエラーメッセージが返されます
_tkinter.TclError: cannot use geometry manager grid inside .!canvas which already has slaves managed by pack
該当のソースコード
python
1import tkinter as tk 2 3def create_result(self, result): 4 root = tk.Tk() 5 root.title(u"検索結果") 6 root.geometry("400x400") 7 8 canvas = tk.Canvas(root) 9 canvas.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.TRUE) 10 11 frame = tk.Frame(canvas) 12 canvas.create_window(0, 0, window=frame) 13 frame.bind('<Configure>', canvas.configure(scrollregion=frame.bbox('all'))) 14 15 xscroll = tk.Scrollbar(canvas, orient=tk.HORIZONTAL, command=canvas.xview) 16 xscroll.pack(side='bottom', fill='both') 17 yscroll = tk.Scrollbar(canvas, orient=tk.VERTICAL, command=canvas.yview) 18 yscroll.pack(side='right', fill='both') 19 20 frame.configure(xscrollcommand=xscroll.set) 21 frame.configure(yscrollcommand=yscroll.set) 22 23 for i in range(len(result)): 24 label_name = "label" + str(i) 25 label_name = tk.Label(frame, text=result[i]) 26 label_name.grid(column=1, row=i, sticky='w', padx=20) 27 28 quit_button = tk.Button(frame, text=u"終了", command=console.destroy) 29 quit_button.grid(column=0, row=1, sticky='nw') 30 31 console.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。