Frame ein und aublenden

Fragen zu Tkinter.
gbl
User
Beiträge: 10
Registriert: Mittwoch 25. Dezember 2002, 10:20

Frame ein und aublenden

Beitragvon gbl » Dienstag 7. Januar 2003, 17:55

Meine Oberfläche soll weitgehend dynamisch sein.

Unter Delphi konnte ich ein From mit Show darstellen und mit Hide verbergen. Ein ähnliches System möchte ich mit Python erreichen.

Ich habe ein Klasse erstellt, in der ein Frame erzeugt wird.
Soweit so gut. Jedoch wie kann ich ein Frame (eigendlich jedes Widget) nun wieder verwerfen?

Anbei mein Gedankengang

Code: Alles auswählen

File option.py

class optionForm:       
    def __init__(self, master):
        self.frame = Frame(master, takefocus=1, highlightthickness=2, highlightcolor='blue')
        Label(self.frame, text='     ').grid(row=0, column=0, sticky=W)
        Label(self.frame, text='     ').grid(row=0, column=5, sticky=W)
       
        self.B1=self.mkbutton(self.frame, 'B1', 1)
        self.B2=self.mkbutton(self.frame, 'B2', 2)
        self.B3=self.mkbutton(self.frame, 'B3', 3)
        self.B4=self.mkbutton(self.frame, 'B4', 4)
       
        #self.doShow()
       
    def doShow(self):
        self.frame.pack()

    def doHide(self):
        self.frame.packforget()
       
    def mkbutton(self, frame, button, column, action=None):
        button = Button(frame, text=button, highlightthickness=2)
        button.grid(padx=10, pady=6, row=0, col=column, sticky=NSEW)
        if action:
            button.config(command=action)
        return button


Es geht um die Public Methods doShow und doHide.

Code: Alles auswählen

File main.py

    def dobrowser(self):
        self.frmCurrent = option.optionForm(self.form)                 
        self.frmCurrent().doShow()


Ich erhalte den Fehler

Code: Alles auswählen

  File "C:\Python22\prg\EMC\main.py", line 106, in dobrowser
    self.frmCurrent().doShow()
AttributeError: browserForm instance has no __call__ method


In meinen Unterlagen finde ich nichts brauchbares.
gbl
User
Beiträge: 10
Registriert: Mittwoch 25. Dezember 2002, 10:20

Hat sich erledigt. Fehler gefunden

Beitragvon gbl » Dienstag 7. Januar 2003, 18:22

Ich hatte den Code ein bischen durcheinander gebracht. Die Fehlermeldung tritt nicht mehr auf.

Widgets kann man mit pack_forget() verwerfen.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder