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