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


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to