Моя цель - получить список меток, которые помещаются внутри экземпляров фрейма меток из списка, который помещается в блокноты из списка и т. Д.,Я также могу по отдельности добавить Tkinter LabelFrames на вкладку блокнота, а затем по отдельности добавить ярлыки к каждому фрейму ярлыка, но это неэффективно.
На данный момент я не могу понять, почему экземпляр LabelFrame не появится на вкладке.Правильно ли создан класс MyLabelFrames
?Правильно ли создан экземпляр?Я не могу найти документы по созданию классов LabelFrame.
import tkinter as tk
from tkinter import ttk
from HH_search import HandHistory
class GUI(tk.Tk):
def __init__(self):
super().__init__()
self.title("Hand History Equilibrium Analyzer")
self.geometry('900x700')
self.resizable(width=False, height=False)
names = ['Hand History Analyzer', 'Tree Loader']
frames = ['Hand History', 'Solver']
hh_labels = ['Info:', 'Players:', 'Pre-flop:',
'Flop:', 'Turn:', 'River:']
self.nb = self.create_notebook(names)
self.menu = self.create_menus()
self.frame = self.create_frames(frames)
tree_tab = self.nb.tabs['Tree Loader']
positions = ['BTN', 'CO', 'MP', 'EP', 'SB', 'BB']
var = tk.StringVar()
var.set(positions[0])
for player in positions:
ttk.Radiobutton(
tree_tab, text=player, variable=var,
value=player, command=False).grid(column=0, sticky=tk.W)
self.mainloop()
def create_notebook(self, names):
nb = MyNotebook(self, names)
nb.grid(sticky=tk.NSEW)
hh_tab = nb.tabs['Hand History Analyzer']
hh_btn = ttk.Button(
hh_tab, text='Begin Hand History Analysis',
command=lambda: HandHistory.analyze_hand(self))
hh_btn.pack(side="top", fill="x", expand=False)
return nb
def create_menus(self):
menu = tk.Menu(self, tearoff=False)
self.config(menu=menu)
sub_menu = tk.Menu(menu, tearoff=False)
menu.add_cascade(label="File", menu=sub_menu)
sub_menu.add_separator()
sub_menu.add_command(label='Exit', command=self.destroy)
return menu
def create_frames(self, frames):
frm = MyLabelFrames(self, frames)
frm.grid(sticky=tk.NSEW)
frame1 = frm.frames['Hand History']
lbltest1 = ttk.Label(frame1, text='test')
lbltest1.pack(side="top", fill="x", expand=False)
return frm
class MyNotebook(ttk.Notebook):
def __init__(self, master, names):
super().__init__(master, width=897, height=675)
self.tabs = {}
for name in names:
self.tabs[name] = tab = ttk.Frame(self)
self.add(tab, text=name)
class MyLabelFrames(ttk.LabelFrame):
def __init__(self, master, frames):
super().__init__(master)
self.frames = {}
for frame in frames:
self.frames[frame] = ttk.LabelFrame(self, text=frames)
GUI()