StringVar() in thread
Verfasst: Dienstag 6. Dezember 2016, 16:01
hey
in meinem code funktioniert alles wie es soll.
ich möchte aber auch das programm schließen und erneut ausführen können.
beim zweiten start allerdings funktioniert der StringVar start_Client nicht mehr.
jede hilfe ist mir willkommen
in meinem code funktioniert alles wie es soll.
ich möchte aber auch das programm schließen und erneut ausführen können.
beim zweiten start allerdings funktioniert der StringVar start_Client nicht mehr.
jede hilfe ist mir willkommen
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter
from Tkinter import *
import threading
import socket
import datetime
import json
from Tkinter import Tk, StringVar, Label
def run():
backwin = Tkinter.Tk()
backwin.title('DMD-DATA.soft')
backwin.state('zoomed')
backwin.configure(background='black')
start_Server = Tkinter.StringVar()
l_sf1 = Tkinter.Label(backwin,textvariable=(start_Server),font=('Arial', 8, 'bold'), height=2, width=25, fg="#000000000",justify='left')
l_sf1.place(relx=.06, rely=.97, anchor="c")
#-----------------
start_Client = Tkinter.StringVar()
#-----------------
l_sf2 = Tkinter.Label(backwin,textvariable=(start_Client),font=('Arial', 8, 'bold'), height=2, width=35, fg="#000000000",justify=LEFT)
l_sf2.place(relx=.2, rely=.97, anchor="c")
get_IP = [TCP_IP for TCP_IP in socket.gethostbyname_ex(socket.gethostname())[2] if not TCP_IP.startswith("127.")][:1]
TCP_PORT = 9090
server_address = ((TCP_IP,TCP_PORT))
def server_Start(backwin,server_address):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_address = ((TCP_IP,TCP_PORT))
sock.bind(server_address)
messageServer = "Server gestartet: "+str(TCP_IP)
start_Server.set(str(messageServer))
sock.listen(5)
while True:
client,addr = sock.accept()
now = datetime.datetime.now()
currentTime = now.strftime("%d.%m.%Y, %H:%M:%S")
client.send("\n---> DMD-Server ("+str(currentTime)+")\n")
data = client.recv(25000)
json_data = json.loads(data)
user = json_data['User']
messageClient = "\n---> "+str(user)+" ("+str(currentTime)+")\n"
start_Client.set(str(messageClient))
#print json_data
client.close()
sock.close()
event = threading.Event()
new_thread = threading.Thread(target=server_Start,args=(backwin,server_address,))
new_thread.start()
def beenden(event):
event.set()
backwin.destroy()
try:
backwin.destroy()
except:
pass
b = Tkinter.Button(backwin, text=("\nBEENDEN\n"), font=('Arial', 10, 'bold'), width=20, relief="raised", borderwidth=3, fg='#000000000', justify='center',command=lambda:beenden(event))
b.place(relx=.51, rely=.82, anchor="c")
backwin.mainloop()
run()