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

GUI Python Discussion :

Problème sur python avec tkinter


Sujet :

GUI Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème sur python avec tkinter
    Bonjour

    Je suis un débutant sur python et je suis entrain de créer un sudoku, mais voila je rencontre un problème avec code. Je voudrais pouvoir écrire mon nombre 1 dans n'importe quel cases de la grille grâce a mon bouton mais je n'y arrive pas. Je cherche donc désespérément mais en vain car je n'y arrive pas.

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    from tkinter import*
    from random import*
    ecriture=("comic sans ms",13)
    nbcase=4
    case=100
    x0,y0=9,9
    chifre=[1,2,3,4]
     
    def fin ():
        fenetre.quit()
        fenetre.destroy()
     
    def grille():
        for i in range(nbcase+1):
            Can.create_line(x0+case*i, y0,x0+case*i,y0 + nbcase*case)
            Can.create_line(x0, y0+case*i,x0+nbcase*case ,y0+case*i)
     
    def donne_position(event):
        TexteC.delete("0.0",END)# on efface l'écriture précédente
        TexteC.insert(END,"clic detecte en x="+str(event.x) + " et y = " + str(event.y))
        a=(event.x)//100
        b=(event.y)//100
        print(a,b)
     
     
    def jouer(event):
        global trouve
        [i,j]=correspond(event.x,event.y)
        if i in range(nb) and j in range (nb):   # on ne fait rien si le click est hors grille
            Can.create_rectangle(x0 +c*j,y0+c*i,x0 +c*(j+1),y0+c*(i+1),fill=coul(i,j))
     
    current = None
     
    def display(x):
        def wrap():
            global current
            current = x
        return wrap
     
     
    def insert(event):
        global a,b
        text = current
        Can.create_text(a,b,text=text)
     
     
     
    fenetre=Tk()
    Cadre=Frame(fenetre)
    Texte1=Label(fenetre,text="Jeu du Sudoku",fg="red",font=ecriture)
    BouttonQuit=Button(fenetre,text="quitter", command=fin)
    BouttonJouer=Button(fenetre,text="jouer", command=grille)
    TexteC=Text(fenetre,height=25,width=25)
    Can=Canvas(Cadre,height=500,width=500,bg="white")
    Bouton1=Button(fenetre,text="1",command=display('1'))
     
     
    Texte1.grid(row=0,column=0)
    BouttonQuit.grid(row=50, column=100)
    Cadre.grid(row=1,column=0)
    Can.grid(row=2, column=0)
    BouttonJouer.grid(row=0, column=50)
    TexteC.grid(row=1, column=3)
    Bouton1.grid(row=45,column=49)
     
     
     
    Can.bind("<Button-1>",donne_position)
     
    Can.bind("<Button-1>",insert)
     
    fenetre.mainloop()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Le chaos Voir le message
    Je suis un débutant sur python et je suis entrain de créer un sudoku, mais voila je rencontre un problème avec code. Je voudrais pouvoir écrire mon nombre 1 dans n'importe quel cases de la grille grâce a mon bouton mais je n'y arrive pas. Je cherche donc désespérément mais en vain car je n'y arrive pas.
    Au bout du bout, il faut pouvoir dire affiche "1" (ou autre chose) dans la case (x, y).
    Avant, il faut s'assurer que la case n'est pas déjà occupée voire verifier qu'on peut mettre cette valeur là dans la case donnée.
    Et encore avant, il faut permettre à l'utilisateur de désigner la case.

    Pour l'instant, dans votre code, il n'y a pas encore de quoi afficher "1" dans la case (x, y): peut être faut-il commencer par là?

    - W

    PS: vous pouvez vous inspirez cette discussion fort ancienne.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Oui mais je peux écrire quelque dans un des cases je l'ai déjà testé avec des coordonnées fixe. Le problème est que je ne sais pas comment écrire ce fameux 1 car maigres que je récupère les coordonnées du clic grâce a event.x et event.y, lors du clic sur le bouton le 1 ne veut pas s'afficher.
    Pour l'instant, dans votre code, il n'y a pas encore de quoi afficher "1" dans la case (x, y): peut être faut-il commencer par là?
    Je ne te comprends pas lorsque tu me parle de ça.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Le chaos Voir le message
    je récupère les coordonnées du clic grâce a event.x et event.y, lors du clic sur le bouton le 1 ne veut pas s'afficher.
    ok, alors essayons de lire le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def donne_position(event):
        TexteC.delete("0.0",END)# on efface l'écriture précédente
        TexteC.insert(END,"clic detecte en x="+str(event.x) + " et y = " + str(event.y))
        a=(event.x)//100
        b=(event.y)//100
        print(a,b)
    Comme a et b ne sont pas déclaré "global", çà regarde passer le train sans rien récupérer.
    note: comme la grille n'est pas 100 x 100 cases pourquoi cette division?
    Plus loin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Can.bind("<Button-1>",donne_position)
    Can.bind("<Button-1>",insert)
    Le 2ème .bind écrase le premier.
    Un clic doit retourner un beau message d'erreur car a et b ne sont jamais définis.
    note: faire le 2ème bind dans donne_position?

    Un code pareil, désolé, mais je ne le lis pas.

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

Discussions similaires

  1. Stéganographie sur Python et Tkinter
    Par HobbitBourg dans le forum Tkinter
    Réponses: 1
    Dernier message: 09/05/2014, 09h00
  2. [WD17] un petit problème sur etat avec saisie
    Par hadaf dans le forum WinDev
    Réponses: 4
    Dernier message: 16/07/2013, 10h24
  3. Problème sur Dcount avec une clause where
    Par robyseb dans le forum VBA Access
    Réponses: 9
    Dernier message: 18/08/2011, 22h39
  4. Problème sur split avec regex
    Par fr1man dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2009, 13h46
  5. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 10h46

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