tkinter - How to call back methods in python? -


i making project in whenever stop stopwatch, updates time listbox. can updated in self.m listbox. cannot updated topscoreslistbox.

in printfunctionstop function, call stop method in class. not know how call topscoresstop in main function.

the stop method , topscoresstop method same thing. different thing 1 in class , 1 in main function.

so how call method topscoresstop in main function in printfunctionstop knows?

class stopwatch(frame):       def stop(self):                                             """ stop stopwatch, ignore if stopped. """         tempo = self._elapsedtime - self.lapmod2         if self._running:             self.after_cancel(self._timer)                         self._elapsedtime = time.time() - self._start                 self._settime(self._elapsedtime)             self._running = 0          if len(self.laps) == 3:             return          self.laps.append(self._setlaptime(tempo))         self.m.insert(end, (str(self.one.get()) , "%.2f" % self._elapsedtime))         self.m.yview_moveto(1)  def main():     def topscores():         toplevel() = toplevel()         toplevel.title("top scores")         topscoreslistbox = listbox(toplevel, selectmode=extended, height=3, width=20, font=("helvetica", 26))                            topscoreslistbox.pack(side=right, fill=both, expand=1, pady=5, padx=2)          first = label(toplevel, text=("1st"), font=("algerian", 30))         first.pack(side=top)          second = label(toplevel, text=("2nd"), font=("algerian", 30))         second.pack(side=top)               third = label(toplevel, text=("3rd"), font=("algerian", 30))         third.pack(side=top)                def topscoresstop():         tempo = sw._elapsedtime - sw.lapmod2         if sw._running:             sw.after_cancel(sw._timer)                         sw._elapsedtime = time.time() - sw._start                 sw._settime(sw._elapsedtime)             sw._running = 0          if len(sw.laps) == 3:             return          sw.laps.append(sw._setlaptime(tempo))         topscoreslistbox.insert(end, (str(sw.one.get()) , "%.2f" % sw._elapsedtime))         topscoreslistbox.yview_moveto(1)      def printfunctionstop(channel):          sw.event_generate("<<stop>>", when = "tail")          gpio.add_event_detect(16, gpio.falling, callback = printfunctionstop, bouncetime=300)     sw.bind("<<stop>>", lambda event:sw.stop())  

have tried passing function argument printfunctionstop?

sorry, can't make comments yet.

e.g.

def a():     print('hi')  def b(func):     func()  def main():     b(a)  main() 

the main should print 'hi'


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -