Comment puis-je mettre des images à l'intérieur de cadres utilisant tkinter?

Je suis en train de faire un programme de baseball basée sur les jeux de stratégie produit par Avalon les Collines depuis les années 70 & des années 80, et la dernière partie est une interface graphique. J'ai fait tout le code à exécuter le jeu de la ligne de commande, et j'ai le code pour sélectionner les files d'attente avec une interface graphique. J'imagine un 3by1 grille avec un tableau de bord sur la première ligne, une zone de texte affichant le résultat, de sortir, de courir à la maison, double jeu, etc., et la dernière ligne est divisée entre le lanceur et la pâte cartes sur le côté gauche, et un cadre de boutons. Le cadre permet de basculer entre une infraction et de la défense le cadre. Donc, la première défense de cadre est livré avec des options comme le tangage changer, changer de position, et jouer à la balle. Jouer à la balle change le cadre de l'infraction options qui seront pincer frapper, pincer courir, voler, et ainsi de suite. Mais comment puis-je mettre les boutons à l'intérieur d'un cadre, puis de combiner les cartes des joueurs et des boutons dans un autre cadre, puis l'ajouter à la trame principale?

La DFrame & OFrame classes sont les classes internes (d'où le "elf", pas de "soi-même"). J'ai la commutation dynamique entre les 2 Images. Mon problème est de briser la DFrame boucle principale, il ne joue que le haut de la première, et de soi-même.roadOuts jamais incréments. Voici ce que j'ai obtenu:

while self.innings < 8.5 or self.homeScore == self.roadScore:
self.roadOuts = 0
while self.roadOuts < 3:
self.dFrame.mainloop()
class DFrame(Frame):
def __init__(elf, parent):
Frame.__init__(elf)
elf._playButton = Button(elf, text = 'Play Ball',
command = parent.oMenu)
elf._playButton.grid(row = 0, column = 0)
elf._pitchingButton = Button(elf, text = 'Pitching Change',
command = parent.pitchingChange)
elf._pitchingButton.grid(row = 1, column = 0)
elf._positionButton = Button(elf, text = 'Defensive Substitution',
command = parent.positionChange)
elf._positionButton.grid(row = 0, column = 1)
elf._alignButton = Button(elf, text = 'Change Positions',
command = parent.positionSwap)
elf._alignButton.grid(row = 1, column = 1)
elf._doubleButton = Button(elf, text = 'Double Switch',
command = parent.doubleSwitch)
elf._doubleButton.grid(row = 2, column = 0)
elf._walkButton = Button(elf, text = 'Intentional Walk',
command = parent.intentionalWalk)
elf._walkButton.grid(row = 2, column = 1)
elf._depthButton = Button(elf, text = 'Change Infield Depth',
command = parent.infieldDepth)
elf._depthButton.grid(row = 3, column = 0)
class OFrame(Frame):
def __init__(elf, parent):
Frame.__init__(elf)
elf._playButton = Button(elf, text = 'Play Ball',
command = parent.atBat)
elf._playButton.grid(row = 0, column = 0)
elf._pinchHitButton = Button(elf, text = 'Pinch Hit',
command = parent.pinchHit)
elf._pinchHitButton.grid(row = 1, column = 0)
elf._prfButton = Button(elf, text = 'Pinch Run First',
command = parent.pinchRunFirst)
elf._prfButton.grid(row = 0, column = 1)
elf._prsButton = Button(elf, text = 'Pinch Run Second',
command = parent.pinchRunSecond)
elf._prsButton.grid(row = 1, column = 1)
elf._prtButton = Button(elf, text = 'Pinch Run Third',
command = parent.pinchRunThird)
elf._prtButton.grid(row = 2, column = 1)
elf._stealButton = Button(elf, text = 'Steal',
command = parent.steal)
elf._stealButton.grid(row = 2, column = 0)
elf._bunt4HitButton = Button(elf, text = 'Bunt for a hit',
command = parent.bunt4AHit)
elf._bunt4HitButton.grid(row = 3, column = 0)
elf._hitNRunButton = Button(elf, text = 'Hit And Run',
command = parent.hitAndRun)
elf._hitNRunButton.grid(row = 4, column = 0)
elf._sacButton = Button(elf, text = 'Sacrifice',
command = parent.sacrifice)
elf._sacButton.grid(row = 4, column = 1)
elf._squeezeButton = Button(elf, text = 'Squeeze',
command = parent.squeeze)
elf._squeezeButton.grid(row = 3, column = 1)

la prochaine méthode est appelée lorsque la DFrame "jouer au ballon" clique sur le bouton, et il fait le OFrame.

def oMenu(self):
self.dFrame.grid_forget()
self.dFrame.destroy()
self.oFrame = self.OFrame(self)
self.oFrame.grid(row = 1, column = 1)
self.oFrame.mainloop()

et à la fin d'une chauve-souris, j'ai:

self.oFrame.grid_forget()
self.oFrame.destroy()
self.dFrame = self.DFrame(self)
self.dFrame.grid(row = 1, column = 1)