実現したいこと
Notebookを使用して、複数のタブを設けています。
タブ2にスクロールバー付きのリストボックスを配置しようと考えています。
発生している問題・分からないこと
どうやってもスクロールバーがリストボックスの右側に設置されてしまいます。
原因が分かればご教示頂けませんでしょうか。
お手数おかけしますが宜しくお願い致します。
該当のソースコード
Python
1from posixpath import split 2import tkinter as tk 3from tkinterdnd2 import * 4from tkinter import * 5 6from tkinter import READABLE, ttk 7from tkinter.constants import COMMAND, DISABLED, FALSE, NORMAL 8from tkinter import filedialog 9from tkinter import messagebox 10import PyPDF2 11from PyPDF2 import PdfReader 12import os 13 14def add_listbox_tb2(event): 15 event.data = event.data.strip("{").strip("}") 16 eventdatas = event.data.split("} {") 17 eventdatas = [i for i in eventdatas if i.endswith('.pdf')] 18 #昇順に変更 19 eventdatas.sort() 20 21 if len(eventdatas)>0: 22 for i in eventdatas: 23 listbox_tb2.insert("end",i ) 24 25# メインウィンドウを作成 26root = TkinterDnD.Tk() 27# ウィンドウのサイズを設定 28root.geometry('460x430') 29# 画面タイトル 30root.title('test') 31 32# Frameウィジェットの生成 33frame = Frame(root) 34# ウィジェットの配置 35frame.place(x=15, y=120) 36 37# メインウィンドウにNotebookを作成 38notebook = ttk.Notebook(root) 39 40# Notebookに関するフレームを3つ作る 41tab1 = tk.Frame(notebook) 42tab2 = tk.Frame(notebook) 43tab3 = tk.Frame(notebook) 44tab4 = tk.Frame(notebook) 45 46 # Notebookに対してtab1, tab2, tab3をそれぞれ追加 47notebook.add(tab1, text="タブ1", padding=3) 48notebook.add(tab2, text="タブ2", padding=3) 49notebook.add(tab3, text="タブ3", padding=3) 50notebook.add(tab4, text="タブ4", padding=3) 51notebook.pack(expand=1, fill="both") 52 53# listbox_tb2ウィジェットの生成 54listbox_tb2 = tk.Listbox(tab2, width=50, height=15, selectmode=EXTENDED) 55listbox_tb2.drop_target_register(DND_FILES) 56listbox_tb2.dnd_bind('<<Drop>>', add_listbox_tb2) 57 58listbox_tb2.pack(side=LEFT, fill=X) 59 60# listbox_tb2ウィジェットに水平方向のスクロールバーを追加 61scroll_x = tk.Scrollbar(tab2, orient=HORIZONTAL,command=listbox_tb2.xview) 62listbox_tb2.configure(xscrollcommand=scroll_x.set) 63 64# listbox_tb2ウィジェットに垂直方向のスクロールバーを追加 65scroll_y = tk.Scrollbar(tab2, orient=VERTICAL,command=listbox_tb2.yview) 66listbox_tb2.configure(yscrollcommand=scroll_y.set) 67 68scroll_y.pack(side=RIGHT, fill=Y) 69scroll_x.pack(side=BOTTOM, fill=X) 70 71root.mainloop() 72
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
・タブがない場合は作成することができましたが、タブがある場合がうまくいかなく困っております
補足
特になし
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。