IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Client Socket avec interface graphique Tkinter


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai Avatar de mohan
    Homme Profil pro
    mateur en informatique
    Inscrit en
    Juillet 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Cameroun

    Informations professionnelles :
    Activité : mateur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2016
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Client Socket avec interface graphique Tkinter
    Bonjour,
    j'ai trop galérer en cherchant a ajouter une interface graphique mon script socket.
    j'espère avancer avec votre aide.
    voila a quoi ressemble mon 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
     
    #-*-coding: Utf-8 -*-
     
    ## MODULES IMPORTER ##
    import os, sys, socket
    from tkinter import *
    from tkinter.messagebox import *
     
    class Application(Tk):
        def __init__(self):
            Tk.__init__(self,)
            self['bg']="yellow"
            self.ent =Entry(self, width =31,).pack()
            Button(self, text ="Connect", comman =self.connect).pack()
            self.can =Canvas(self, width =711, height =311, bg="light yellow")
            self.can.pack(padx=6, pady =6)
            Button(self, text ="Entre", command =self.send).pack()
     
        def connect(self):
            PORT =19111
            self.ent =self.ent
            try:
                self =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                self.connect(("", PORT))
            except:
                showinfo("Socket Error", "La machine distante est injoignable")
     
        def send(self):
            while 1:
                if msgServeur.upper() =="Attention" or msgServeur =="tchip":
                    break
     
                print(msgServeur)
                msgClient = input("CMD *> ")
                mySocket.send(msgClient.encode("ISO-8859-15"))
                msgServeur = mySocket.recv(1024).decode("ISO-8859-15")
     
    app = Application()
    app.mainloop()
    voila c'est que j'aimerais faire;

    -un Entry pour servir a entre le host

    -un Button pour se connecter

    -un autre Entry pour la saisi de commande

    -un autre Button pour envoie les commandes

    -et le canvas pour recuperer et afficher les messages envoier par le serveur

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par mohan Voir le message
    j'ai trop galérer en cherchant a ajouter une interface graphique mon script socket.
    Il faut commencer par apprendre à utiliser une Entry, un Canvas au moins pour arriver à faire ce que vous souhaitez: récupérer ce qu'a tapé l'utilisateur dans l'Entry, afficher des messages dans un Canvas,... i.e. décomposer les fonctionnalités de votre programme en sous problèmes plus simples.
    Vous avez une liste de FAQ et documentation tkinter disponibles ici.: c'est une bonne occasion pour essayez de les lire, voir ce qu'ils contiennent,...
    A défaut, si vous ne vous en sortez pas vous pouvez toujours posez une question plus spécifique ici avec un exemple de code du sous problème que vous avez cherché à résoudre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai Avatar de mohan
    Homme Profil pro
    mateur en informatique
    Inscrit en
    Juillet 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Cameroun

    Informations professionnelles :
    Activité : mateur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2016
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    j'ai tout parcourus, les articles sont de long date, et moi j'utilise la version 3.4, tous les toolkit sont en version 2.4
    sert l'adapter avec ma version est possible mais complexe.
    merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par mohan Voir le message
    j'ai tout parcourus, les articles sont de long date, et moi j'utilise la version 3.4, tous les toolkit sont en version 2.4
    Côté tkinter la seule différence est côté import. Pour le principal: "import Tkinter" est remplacé par "import tkinter". Vous avez aussi des différences côté font, ttk,... mais limités aux noms des modules à importer. A part çà, les fonctionnalités de bases des widgets sont les mêmes.

    Citation Envoyé par mohan Voir le message
    sert l'adapter avec ma version est possible mais complexe.
    Appliquer 2/3 règles simples n'a rien de bien compliqué.
    De plus apprendre à programmer avec Python3, manuel des références de tkinter, la documentation des commandes tcl/tk,... sont mentionnés dans la liste que je vous ai donnée et, chance, écrits en français.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai Avatar de mohan
    Homme Profil pro
    mateur en informatique
    Inscrit en
    Juillet 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Cameroun

    Informations professionnelles :
    Activité : mateur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2016
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    après de heurs de recherche, j'ai obtenus ça:
    je droit dire que c'est mieux que rien:
    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)
            except socket.error:
                if askyesno("Error", u"Error socket. Verifier le host et Relancer?"):
                    return self.connection
                else:
                    sys.exit
     
        def chat(self, event):
            """Evenement clavier"""
            msgClient =self.msgClient
            self.sock.send(msgClient.get().encode("Utf8"))
            self.frome()
     
        """Interface graphique"""
        def __init__(self,):
            Tk.__init__(self,)
            self['bg']="black"
            self.title("Client Socket")
            self.iconbitmap('icon.ico')
            self.value_1 =StringVar()
            self.value_2 =StringVar()
            self.value_1.set("")
            self.value_2.set("")
            #Entry
            self.ent =Entry(self, width =31, selectbackground ="royal blue",textvariable =self.value_1,font ="Cambria 9")
            self.ent.bind("<Return>", self.connection)
            self.ent.pack(padx =1, pady =2)
            #Canvas 
            self.can =Canvas(self, width =711, height =311, bg="red")
            txt =self.can.create_text(355, 18, text="Lamine", font ="Lucida 15", fill ="black")
            self.can.pack(padx=6, pady =6)
            #Entry
            self.msgClient =Entry(self, width =71,selectbackground ="royal blue", textvariable=self.value_2, font ="Cambria 10")
            self.msgClient.bind("<Return>", self.chat)
            self.msgClient.pack(padx =4, pady =4)
     
        def frome(self):
            self.Msg_S =self.sock.recv(1024).decode("Utf8")
     
     
    if __name__=='__main__':
        app = Application()
        app.mainloop()
    faut dire que votre conseille m'as bien était utile.
    il me reste que d'afficher le self.sock.recv(1024).decode("Utf8")
    dans le canvas.
    je droit dire que c'est pas la perfection mais, aider moi a l'améliorer.
    Merci.

Discussions similaires

  1. Problème avec mon interface graphique Tkinter
    Par SamirIV dans le forum Tkinter
    Réponses: 0
    Dernier message: 09/05/2014, 21h08
  2. Réponses: 5
    Dernier message: 06/05/2007, 14h33
  3. Réponses: 2
    Dernier message: 27/10/2006, 18h54
  4. Débugger avec interface graphique
    Par powerpsy dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 03/05/2006, 22h53
  5. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo