0
私はpython 3.4とtkinterを使用しています。私は2ページのノートを持っています。私は両方のページにある必要があるリストボックスを持っています。pythonリストボックスを2つのノートブックページに複製できますか?
リストボックスを一度セットアップして両方のページで使用できるのか、各ページに別々のリストボックスをセットアップして、リストボックスを変更する必要があるのでしょうか?
私はpython 3.4とtkinterを使用しています。私は2ページのノートを持っています。私は両方のページにある必要があるリストボックスを持っています。pythonリストボックスを2つのノートブックページに複製できますか?
リストボックスを一度セットアップして両方のページで使用できるのか、各ページに別々のリストボックスをセットアップして、リストボックスを変更する必要があるのでしょうか?
リストボックスを2つの異なるフレームに同時にパック/グリッド/配置することはできません。
ただし、ノートブックタブが変更されるたびにリストボックスを再パック/グリッド/配置することができます。 display_listbox
について
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
notebook = ttk.Notebook(root)
notebook.pack()
frame1 = tk.Frame(notebook, bg='red', width=400, height=400)
frame1.pack_propagate(False)
frame2 = tk.Frame(notebook, bg='blue', width=400, height=400)
frame2.pack_propagate(False)
notebook.add(frame1, text='frame 1')
notebook.add(frame2, text='frame 2')
var = tk.StringVar(root, 'a b c d e f g')
listbox = tk.Listbox(notebook, listvariable=var)
def display_listbox(event):
tab = notebook.tabs()[notebook.index('current')]
listbox.pack(in_=tab)
notebook.bind('<<NotebookTabChanged>>', display_listbox)
root.mainloop()
説明:
notebook.tabs()
戻り(frame1, frame2)
(すなわち、タブのタプル)<<NotebookTabChanged>>
イベントを使用しましたnotebook.index('current')
は、現在表示されているタブのインデックスを返します。in_
オプションを使用して、リストボックスをパックするウィジェットを指定できますoはgrid
とplace
となります)
あなたが傾ける理由はありません。あなたが望むものを達成するには、いくつかの方法が必要です。これまでに試したことのサンプルコードを提供すれば、誰かが助けることができます。 –