Python Forum
Button in one class, methods in another one
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Button in one class, methods in another one
#5
The easiest way to control or work with objects in tkinter is to use tags.
I don't see the need for 2 classes here
from tkinter import Tk,Frame,Canvas,Button,RIGHT,LEFT
  
class Button_Can(Frame):
    def __init__(self):
        Frame.__init__(self)
        self.pack(expand='yes',fill='both')
        self.larg,self.haut=200,200
        self.can=Canvas(self.master,width=self.larg,height=self.haut,bg='ivory')
        self.can.pack()        
        self.b1=Button(self.master,text='Open it !',command=self.openMouth)
        self.b2=Button(self.master,text='Close it !',command=self.closeMouth)
        self.b3=Button(self.master,text='delete it!',command=self.delete_mouth)
        self.b1.pack(side=RIGHT)
        self.b2.pack(side=LEFT)
        self.b3.pack(side='bottom')
        self.setup()
    def setup(self):
        
        cc =[[100, 100, 80, 'red'],[70, 70, 15, 'blue'], 
        [130, 70, 15, 'blue'],[70, 70, 5, 'black'],
        [130, 70, 5, 'black'],[44, 115, 20, 'red'], 
        [156, 115, 20, 'red'],[100, 95, 15, 'purple']] 
        i =0
        while i < len(cc):
            el = cc[i] 
            self.circle(el[0], el[1], el[2], el[3])
            i += 1 
        
  
    def circle(self,x, y, r, coul ='black'):
        "Draw a circle center x,y radius r "
        self.can.create_oval(x-r, y-r, x+r, y+r, outline=coul)
    def openMouth(self):
        self.can.delete('bouche')        
        self.opened_mouth= self.can.create_oval(70, 115, 130, 175,
                                                outline='purple',tag='bouche')
    def closeMouth(self):
        self.can.delete('bouche')        
        self.closed_mouth=self.can.create_line(80,145,120,145,
                                               fill='purple', tag='bouche')
    def delete_mouth(self):
        self.can.delete('bouche')
if __name__ == '__main__': 
    root = Tk()
    root.title('la visage')
    A=Button_Can()
    root.mainloop()
Reply


Messages In This Thread
RE: Button in one class, methods in another one - by joe_momma - Jul-11-2019, 01:57 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Kivy] Acces atributes from a button defined in a class inside the .kv Tomli 2 2,055 Jun-10-2021, 01:05 AM
Last Post: Tomli
  [Tkinter] Modify Class on Button Click KDog 4 3,907 May-11-2021, 08:43 PM
Last Post: KDog
  Class function does not create command button Heyjoe 2 2,230 Aug-22-2020, 08:06 PM
Last Post: Heyjoe
  [PySimpleGui] How to alter mouse click button of a standard submit button? skyerosebud 3 4,951 Jul-21-2019, 06:02 PM
Last Post: FullOfHelp
  Button click doesnt work from my second class/layout in Python imamideb 0 2,330 Feb-13-2018, 12:09 PM
Last Post: imamideb
  Overriding tkinter button methods Lubik_ 3 6,111 Sep-26-2017, 10:24 AM
Last Post: metulburr

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020