bmspates
bmspates

Reputation: 11

Run two Commands when you hit a Tkinter Button

I would like a Tkinter button to clear my current Grid, and also go to a function, and I cannot think of how to do it. I have a grid that is a menu, and in another function I have the code for what was just opened by hitting the button.

in short I want a button, when clicked to do this: self.studyGuide and this: self.frame.grid_forget.

Here is my code:

from tkinter import *

class App:
    def __init__(self,master):

        frame = Frame(master)
        frame.grid()

        self.sg = Button(frame, text = "Study Guide", command = self.buttonStart, fg="red")
        self.sg.grid(row = 2, column = 1)

        self.quizlet = Button(frame, text = "Quizlet", command = self.quizlet)
        self.quizlet.grid(row = 2, column = 2)

        self.flashcard = Button(frame, text = "Flash Cards", command = self.flashcard)
        self.flashcard.grid(row = 2, column = 3)

        self.quitButton = Button(frame, text = "Quit", command = frame.quit)
        self.quitButton.grid(row = 3, column = 2)

        self.text = Label(frame, text = "Social Studies Study Tool")
        self.text.grid(row = 1, column = 2)

        def buttonStart(frame):
        self.studyGuide()
        self.frame.grid_forget()

   def studyGuide(self):
        studyGuide = Frame()
        studyGuide.pack()

        self.sgText = Label(studyGuide, text = "This is not real.")
        self.sgText.pack()
def quizlet(self):
        print("Quizlet")

def flashcard(self):
        print("Flashcards")

root = Tk()

app = App(root)
root.mainloop()

Upvotes: 0

Views: 2900

Answers (1)

BeetDemGuise
BeetDemGuise

Reputation: 974

Simply, have the callback passed to the Button constructor call the other 2 functions:

def foo(self):
    self.studyGuide()
    self.frame.grid_forget()

root = Tk()
my_button = Button(root, text="I'm doing stuff", command=foo)

Upvotes: 2

Related Questions