tkinter

Terry Reedy tjreedy at udel.edu
Tue Mar 19 02:18:57 EDT 2019


On 3/18/2019 12:00 PM, Informatico de Neurodesarrollo wrote:
> Hello friends:
> 
> I am a beginner on programming in python.
> 
> I want make a simple program that test continuously (every 5 seg) the 
> connection  to internet and change the background color when are not 
> available. I try this , but not work properly:
> 
>   #!/usr/bin/env python3
> # -*- coding: utf-8 -*-

Not needed for py 3 where utf-8 is default

> from tkinter import *
> import socket, time
> 
> def DetectarConexion():
>      testConn = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>      try:
>          testConn.connect(('8.8.8.8', 80))
>          testConn.close()
>          return True
>      except:
>          testConn.close()
>          return False
> 
> root = Tk()
> root.title("Conexión")
> root.geometry("80x50")
> 
> while True:
>      if DetectarConexion():
>          # Background:Green
>          root.config(background="#38EB5C")
>      else:
>          # Background:Red
>          root.config(background="#F50743")
>      time.sleep(5)

This is your problem.  Loop with event loop in order to not block gui. 
See working code below.

> root.mainloop()

#!/usr/bin/env python3

from tkinter import *

connected = False
def DetectarConexion():
     global connected
     connected = not connected
     return connected

root = Tk()
root.title("Conexión")
root.geometry("80x50")

def colorupdate():
     if DetectarConexion():
         # Background:Green
         root.config(background="#38EB5C")
     else:
         # Background:Red
         root.config(background="#F50743")
     root.after(1000, colorupdate)  # 1000 milliseconds = 1 second

colorupdate()
root.mainloop()



-- 
Terry Jan Reedy





More information about the Python-list mailing list