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