slt
je cherche a afficher dans le canvas, un message socket, mais mon problème est que lord de l'affichage du message,
tout les contenus s'affiche en une ligne.
est il possible de contenir tout le message dans un dictionnaire puis l'afficher?, probablement possible mais comment faire.
voila a quoi ressemble le script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
#-*-coding: Utf-8 -*-
 
## MODULES IMPORTER ##
import os, sys, socket
from tkinter import *
from tkinter.messagebox import *
 
class Application(Tk):
    def connection(self, event):
        self.HOST =self.ent.get()
        self.sock =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:                
            self.sock.connect((self.HOST, 19111))
            self.msgServeur_1 =self.sock.recv(1024).decode("Utf8")
            showinfo("Connection",self.msgServeur_1)
            self.lb.configure(text=u"Status: connecter")
        except socket.error:
            if askyesno("Error", u"Error socket. Verifier le host et Relancer?"):
                self.lb.configure(text=u"Status: non connecter")
                return self.connection
            else:
                sys.exit
 
    def chat(self, event):
        """Evenement clavier"""
        msgClient =self.msgClient
        self.sock.send(msgClient.get().encode("Utf8"))
 
        text=self.sock.recv(1024).decode("Utf8")
 
        self.txt =self.can.create_text(75, 18,text=text, font ="Cambria 9", fill ="black")
 
    """Interface graphique"""
    def __init__(self,):
        Tk.__init__(self,)
        self['bg']="green"
        self.title("Client Socket")
        self.iconbitmap('icon.ico')
 
        #Label
        self.lb =Label(self, bg="green", font ="Cambria 11")
        self.lb.pack(padx=1, pady=1)
        #Entry
        self.ent =Entry(self, width =31, selectbackground ="royal blue",font ="Cambria 9")
        self.ent.bind("<Return>", self.connection)
        self.ent.pack(padx =1, pady =1)
 
        #Canvas
        self.can =Canvas(self, width =711, height =311, bg ="red")
        self.can.pack(padx=3, pady =3)
 
        #Entry
        self.msgClient =Entry(self, width =71,selectbackground ="royal blue", font ="Cambria 10")
        self.msgClient.bind("<Return>", self.chat)
        self.msgClient.pack(padx =3, pady =3)  
 
 
if __name__=='__main__':
    app = Application()
    app.mainloop()
rendre le valeur str() en Unicode...
merci