1

I have the following code:

import time,  os
from tkinter import *

class Chat():

    def sPrint():
        s=0
        while s < 11:
            s+=1
            print (s, 'Sec')
            time.sleep(1)

            if s ==5:
                print ("5..")
                myapp.OpenWindow1()
            if s ==10:
                print ("10..")
                myapp.OpenWindow2()

class App(Frame):

    def ConnectButton1(self):
        self.con1 = Button(self)
        self.con1["text"] = "Connect1",
        self.con1["command"] = lambda: Chat.sPrint()
        self.con1.grid(row=0,column=2,padx=5, pady=3,sticky=W)


    def OpenWindow1(self):
        win1 = Toplevel()

    def OpenWindow2(self):
        win2 = Toplevel()

    myapp = App()
    if __name__ == "__main__":
        myapp.ConnectButton1()
        myapp.pack()
        myapp.mainloop()

Problem is - the "print" works perfect every 5 seconds from inside the loop, but the Toplevel functions runs only when the "while" end (and then shows two toplevel windows at the same time)

Same happen when i use the

threading.Timer(1, sPrint1).start()

for running a function in a loop.. i can't load a new tkinter buttons/labels while the function is in a loop.

Any suggestions?

tshepang
  • 12,111
  • 21
  • 91
  • 136
user1641071
  • 387
  • 1
  • 7
  • 16
  • Have a look at this: http://stackoverflow.com/questions/21532523/tkinter-loop-and-serial-write – User Feb 21 '14 at 10:40

0 Answers0