質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

333閲覧

【PYTHON】リストボックスのスクロールバーの設置場所がうまくいかない

Arugon

総合スコア1

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/06/23 03:18

実現したいこと

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等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

・タブがない場合は作成することができましたが、タブがある場合がうまくいかなく困っております

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Windows 11、Python 3.12.3で確認しました。

packでもできるかもしれませんが、この場合はgridのほうが簡単です。

#listbox_tb2.pack(side=LEFT, fill=X) #scroll_y.pack(side=RIGHT, fill=Y) #scroll_x.pack(side=BOTTOM, fill=X) listbox_tb2.grid(row=0, column=0) scroll_y.grid(row=0, column=1, sticky=tk.NS) scroll_x.grid(row=1, column=0, sticky=tk.EW)

投稿2024/06/23 08:34

hiroki-o

総合スコア1059

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

hiroki-o様
早速ご回答頂きありがとうございます。
gridで作成したところ無事作成できました。

本当に助かりました。ありがとうございました。

投稿2024/06/24 09:04

Arugon

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問