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 :

Python déplacer une image


Sujet :

GUI Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 4
    Points
    4
    Par défaut Python déplacer une image
    Bonjour,
    J'ai un projet à faire pour le bac et le sujet est une serre automatisée. J'essai donc de faire un programme pour montrer comment la serre réagirait dans certaines conditions ( une sorte de simulation ).
    J'ai réussi à faire apparaître et disparaître des images mais quand il s'agit de les faire se déplacer je n'arrive pas à les arrêter.


    J'essai de faire bouger une image mais je n'arrive pas à la faire s’arrêter, elle continue de descendre.

    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
     
    eau = PhotoImage(file='H:\\ISN\\SI Programme Projet\\Etapes de vie des plantes\\bcp particules eau.png')
    img_eau = eau.subsample(1,1)
    image_eau=canvas.create_image(430,462,anchor=NW,image=img_eau)
     
    def fc_arrosage():
     
        eau_coords = canvas.coords(image_eau)
        eau_width = img_eau.width()
        eau_height =img_eau.height()
     
        if eau_coords[0] + eau_height <= 468:
            canvas.move(image_eau,-5,7)
            root.after(50,fc_arrosage)
     
    fc_arrosage()
    Et j'aimerais aussi savoir comment faire un enchaînement de "mouvement d'images" comme une sorte de vidéo avec des pauses(délais d'environ 2sec) entre chaque étapes, Exemple :
    1: Arroser les plantes (Déplacer l'image/objet image_eau en boucle)
    2: Faire pousser les plantes (Remplacer l'image de la plante par une autre image)
    3: Arrêter l'arrosage (Arrêter la boucle qui affiche image_eau)
    4:Faire mourir les plantes (Changer l'image de la plante par une autre)

    J'ai essayer de faire cela avec le timer.sleep(2) mais il n'affiche que le résultat du programme et non les étapes qui le compose.

    Sinon j'ai pensé à un autre moyen de faire cela beaucoup plus facilement, avec des vidéos mais je ne trouve aucun tuto sur comment ajouter une vidéo dans une fenêtre tkinter.

    Voici le code en entier : j'ai oublier de d’expliquer ce que chaque bloque fait et certaines fonctions sont vide car je ne peut pas les remplir pour l'instant.
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    from tkinter import *
    import time
    import PIL
    from time import *
     
    root = Tk()
     
    root.title('Simulation de la Mini Serre')
     
    def deplacement():
        img_coords = canvas.coords(image)
        img_width = img_2.width()
     
        if img_coords[0] + img_width <= 1500:
            canvas.move(image,5,0)
            root.after(0,deplacement)
     
    img = PhotoImage(file='testimg.ppm')
    canvas = Canvas(root,width=1500, height=700, bg="white")
    canvas.pack( side= RIGHT,padx=10,pady=10)
    img_2 = img.subsample(1,1)
    image=canvas.create_image(-2000,10,anchor=NW,image=img_2)
     
     
    def affichage_base():
        base_coords = canvas.coords(image_base)
        base_width = img_base2.width()
     
        if base_coords[0] + base_width <= 1500:
            canvas.move(image_base,5,0)
            root.after(0,affichage_base)
     
    base = PhotoImage(file='H:\\ISN\\SI Programme Projet\\SERRE NEUTRE.ppm')
    img_base2 =base.subsample(1,1)
    image_base=canvas.create_image(-1000,10,anchor=NW,image=img_base2)
    affichage_base()
     
     
    def deplacement3():
        img3_coords = canvas.coords(image3)
        img3_width = img_3.width()
     
        if img3_coords[0] +img3_width <= 800:
            canvas.move(image3,5,0)
            root.after(0,deplacement3)
     
    img3 = PhotoImage(file='tttest.ppm')
    img_3 = img3.subsample(20,20)
    image3=canvas.create_image(-1000,10,anchor=NW,image=img_3)
     
     
    def deplacement1():
        deplacement()
        deplacement3()
     
     
    def fc_goutte_a_goutte():
        x=1
     
     
    def fc_sol_sec():
        x=1
     
     
    def fc_sol_humide():
        x=1
     
     
    pe2s = PhotoImage(file='H:\\ISN\\SI Programme Projet\\Etapes de vie des plantes\\Etapes 2 sur 5.png')
    img_pe2s = pe2s.subsample(4,4)
    image_pe2s1=canvas.create_image(440,412,anchor=NW,image=img_pe2s)
    image_pe2s2=canvas.create_image(500,412,anchor=NW,image=img_pe2s)
    image_pe2s3=canvas.create_image(560,412,anchor=NW,image=img_pe2s)
    image_pe2s4=canvas.create_image(620,412,anchor=NW,image=img_pe2s)
    image_pe2s5=canvas.create_image(680,412,anchor=NW,image=img_pe2s)
     
    canvas.move(image_pe2s1,1,-800)
    canvas.move(image_pe2s2,1,-800)
    canvas.move(image_pe2s3,1,-800)
    canvas.move(image_pe2s4,1,-800)
    canvas.move(image_pe2s5,1,-800)
     
    def fc_plante_E2_spawn():
        canvas.move(image_pe2s1,-1,800)
        canvas.move(image_pe2s2,-1,800)
        canvas.move(image_pe2s3,-1,800)
        canvas.move(image_pe2s4,-1,800)
        canvas.move(image_pe2s5,-1,800)
        btn_Activer_simu.configure(state='disabled')
     
     
    pmj = PhotoImage(file='H:\\ISN\\SI Programme Projet\\Etapes de vie des plantes\\Plante morte jeune.png')
    img_pmj = pmj.subsample(4,4)
    image_pmj1=canvas.create_image(440,412,anchor=NW,image=img_pmj)
    image_pmj2=canvas.create_image(500,412,anchor=NW,image=img_pmj)
    image_pmj3=canvas.create_image(560,412,anchor=NW,image=img_pmj)
    image_pmj4=canvas.create_image(620,412,anchor=NW,image=img_pmj)
    image_pmj5=canvas.create_image(680,412,anchor=NW,image=img_pmj)
     
    canvas.move(image_pmj1,1,-800)
    canvas.move(image_pmj2,1,-800)
    canvas.move(image_pmj3,1,-800)
    canvas.move(image_pmj4,1,-800)
    canvas.move(image_pmj5,1,-800)
     
    def fc_plantes_E2_meurent():
        canvas.move(image_pe2s1,1,-800)
        canvas.move(image_pe2s2,1,-800)
        canvas.move(image_pe2s3,1,-800)
        canvas.move(image_pe2s4,1,-800)
        canvas.move(image_pe2s5,1,-800)
        btn_Activer_simu.configure(state='normal')
     
        canvas.move(image_pmj1,-1,800)
        canvas.move(image_pmj2,-1,800)
        canvas.move(image_pmj3,-1,800)
        canvas.move(image_pmj4,-1,800)
        canvas.move(image_pmj5,-1,800)
     
     
    eau = PhotoImage(file='H:\\ISN\\SI Programme Projet\\Etapes de vie des plantes\\bcp particules eau.png')
    img_eau = eau.subsample(1,1)
    image_eau=canvas.create_image(430,462,anchor=NW,image=img_eau)
     
     
    def fc_arrosage():
     
        eau_coords = canvas.coords(image_eau)
        eau_width = img_eau.width()
        eau_height =img_eau.height()
     
        if eau_coords[0] + eau_height <= 468:
            canvas.move(image_eau,0,7)
            root.after(50,fc_arrosage)
     
    fc_arrosage()
     
     
    frame_2=Frame(root,height=700,width=300)
    frame_2.pack(side= LEFT, anchor=N)
     
    titre_txt=Label(frame_2, text="Mini Serre", font=('arial',20), bd=1, relief="solid", pady=20)
    titre_txt.place(x=90,y=10)
     
    btn_Activer_simu= Button(frame_2, text="Activer la simulation", fg="black", command= fc_plante_E2_spawn)
    btn_Activer_simu.place(x=175,y=120)
     
    btn_sol_sec= Button(frame_2, text="Sol Sec", fg="black", command= fc_plantes_E2_meurent)
    btn_sol_sec.place(x=168,y=150)
     
    btn_sol_humide= Button(frame_2, text="Sol Humide", fg="black", command= fc_sol_humide)
    btn_sol_humide.place(x=220,y=150)
     
    niv_humidite_txt=Label(frame_2, text="Niveau d'humidité du sol :")
    niv_humidite_txt.place(x=75,y=220)
     
    niv_humidite=Scale(frame_2,from_=50, to=0)
    niv_humidite.place(x=257,y=177)
     
    quantite_eau_txt=Label(frame_2, text="Quantité d'eau du goutte à goutte :")
    quantite_eau_txt.place(x=27,y=320)
     
    quantite_eau=Scale(frame_2,from_=50, to=0)
    quantite_eau.place(x=257,y=280)
     
    temp_serre=Scale(frame_2,from_=50, to=0)
    temp_serre.place(x=257,y=385)
     
    temp_serre_txt=Label(frame_2, text="Température de la serre :")
    temp_serre_txt.place(x=80,y=420)
     
    temp_auto_serre_txt=Label(frame_2, text="Température automatique de la serre :")
    temp_auto_serre_txt.place(x=68,y=500)
     
    temp_auto= Checkbutton(frame_2)
    temp_auto.place(x=272, y=500)
     
    gag_auto_txt=Label(frame_2, text="Activation automatique du goutte a goutte :")
    gag_auto_txt.place(x=35,y=525)
     
    gag_auto= Checkbutton(frame_2)
    gag_auto.place(x=272, y=525)
     
     
     
    root.mainloop()

    Merci!

  2. #2
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Salut.

    Citation Envoyé par Revilome Voir le message
    J'essai de faire bouger une image mais je n'arrive pas à la faire s’arrêter, elle continue de descendre.
    À ton avis, à quoi correspond eau_coords[0] ?

    Citation Envoyé par Revilome Voir le message
    Et j'aimerais aussi savoir comment faire un enchaînement de "mouvement d'images" comme une sorte de vidéo avec des pauses(délais d'environ 2sec) entre chaque étapes, Exemple :
    1: Arroser les plantes (Déplacer l'image/objet image_eau en boucle)
    2: Faire pousser les plantes (Remplacer l'image de la plante par une autre image)
    3: Arrêter l'arrosage (Arrêter la boucle qui affiche image_eau)
    4:Faire mourir les plantes (Changer l'image de la plante par une autre)

    J'ai essayer de faire cela avec le timer.sleep(2) mais il n'affiche que le résultat du programme et non les étapes qui le compose.
    Tu dois faire cela avec la méthode after comme pour le déplacement, et tout ça tu peux le gérer avec des déclencheurs qui ne seront rien d'autres que des variables, booléennes ou autres que tu devras actualiser selon les événements se produisant dans ta serre.
    Le temps ronge l'amour comme l'acide.

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par bistouille Voir le message
    Salut.



    À ton avis, à quoi correspond eau_coords[0] ?



    Tu dois faire cela avec la méthode after comme pour le déplacement, et tout ça tu peux le gérer avec des déclencheurs qui ne seront rien d'autres que des variables, booléennes ou autres que tu devras actualiser selon les événements se produisant dans ta serre.
    Salut,

    J'ai regardé des tutos et des docs sur coords pour savoir à quoi coords[0] correspond, il semblerait qu'il corresponde aux "coordonnées du plus bas" mais quels coordonnées ? X, Y ou les deux ?. Et qu'il faut mettre des tuples dedans.
    Je sais pas mais je ne pense pas que "[]" et "()" soient la même chose, sinon j'ai vu que l'ont peut mettre coords(x1,y1,x2,y2). x1 et y1 devraient être les coordonnées de base et x2,y2 les nouvelles coordonnées ?
    Donc en gros je ne sais pas a quoi correspond coords[0].

    Merci pour m'avoir montré la méthode after, c'est exactement ce qu'il me fallait!
    Mais j'ai juste essayé quelques tests et je n'ai trouvé que moyen de faire une boucle, y aurait-il un moyen de "reset" le temps après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    canvas.after(500+z, autre_fonction)
    pour ne pas avoir à rajouter 2 autres variables et être plus précis?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def test():
        x=0
        y=0
        z=0
        while x <=5:
            canvas.after(200+y, fonction)
            canvas.after(500+z, autre_fonction)
            x=x+1
            y=y+800
            z=z+1100
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def test():
     
        y=0
        z=0
        for x in range (0,5):
            canvas.after(200+y, fc_plante_E2_spawn)
            canvas.after(500+z, fc_plantes_E2_meurent)
            y=y+800
            z=z+1100
    Merci beaucoup

  4. #4
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    La méthode Canvas.coords sur un item de type image retourne un x et y correspondant au centre de l'image, donc eau_coords[0] correspond au x, et donc, ta comparaison dans ta condition doit s'effectuer sur le y (eau_coords[1]), et non sur le x.

    En ce qui concerne ta boucle, il suffit de gérer les deux indépendamment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(2, 8*5, 8) :
        print(i * 100)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(5, 11*5, 11) :
        print(i * 100)
    Le temps ronge l'amour comme l'acide.

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    J'ai réussi à faire comme tu m'as dit pour pour déplacer image_eau et ça fonctionne!
    Mais pour la boucle je n'ai pas compris, la première boucle va de 2 à 40 avec un pas de 8 et la deuxième, de 5 à 55 avec un pas de 11 mais elles se terminent avant que la fonction fc_arrosage finisse.
    J'ai écris ça :
    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
     
    eau = PhotoImage(file='H:\\ISN\\SI Programme Projet\\Etapes de vie des plantes\\bcp particules eau.png')
    img_eau = eau.subsample(1,1)
    image_eau=canvas.create_image(-1000,1000,anchor=NW,image=img_eau)
     
    def fc_arrosage():
        eau_coords = canvas.coords(image_eau)
        eau_width = img_eau.width()
        eau_height =img_eau.height()
     
        if eau_coords[1] + eau_height <= 474:
            canvas.move(image_eau,-0.5,1)
            root.after(200,fc_arrosage)
        canvas.after(1900, fc_move_eau) #Apres 1.9sec on déplace l'image hors de la fenêtre 
     
    def fc_move_eau():
        canvas.coords(image_eau,-1000,1000) #déplacer l'image hors de la fenêtre 
     
    def fc_move_eau2():
        canvas.coords(image_eau,430,462) #replacer l'image dans la fenêtre 
     
    def test():
        fc_move_eau2()
        canvas.after(300, fc_arrosage)
    Ce qui place l'image dans la fenêtre et l'anime et quand l'animation est terminé déplace l'image hors de la fenêtre, il ne me reste plus qu'a trouver comment le placer dans un boucle.

  6. #6
    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 Revilome Voir le message
    il ne me reste plus qu'a trouver comment le placer dans un boucle.
    Prenez le temps de lire la réponse que j'avais faites à une discussion récente et de comprendre le chapitre sur les animations avec tkinter de notre tuto. préféré.

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

  7. #7
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Prenez le temps de lire la réponse que j'avais faites à une discussion récente et de comprendre le chapitre sur les animations avec tkinter de notre tuto. préféré.

    - W
    Merci!

    J'ai réussi!

    Mais je viens de tomber sur un autre problème, j'essais d'utiliser des variables qui on été définies dans des fonctions donc j'utilise le "return" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def fc_chaleur(val):
        chaleur_val=int(val)*4.5
        canvas.coords(image_chaleur,413, -chaleur_val+400)
        canvas.coords(image_froid,413, chaleur_val+400)
        btn_temp_auto.configure(text='Désactivé', bg='Red',state='normal')
        return chaleur_val
    Puis dans une autre fonction je rappel la fonction précédente pour l'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def debut_simulation():
        print(fc_chaleur(val))
    Mais une erreur s'affiche : NameError: name 'val' is not defined

    J'ai réussi à passer des variables entre des fonctions sans de variables entre les parenthèses de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def test():
        g=5
        return g
     
    def debut_simulation():
        print(test())
    Je vois bien que c'est le var qui bloque le programme mais je ne sais pas comment définir une variable entre les parenthèses d'une fonction.

    Merci encore

  8. #8
    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 Revilome Voir le message
    Je vois bien que c'est le var qui bloque le programme mais je ne sais pas comment définir une variable entre les parenthèses d'une fonction.
    On ne peut pas, il faut définir la variable avant de la passer en argument de la fonction.
    Vous n'êtes pas au bout de vos peines, car avec tkinter, certaines fonctions ne seront pas appelée depuis un endroit de votre code mais par tkinter lui même: impossible de récupérer leur retour et difficile de leur passer des arguments.
    Pour y voir plus clair, il va falloir passer un peu de temps dans les tutos.

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

  9. #9
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    On ne peut pas, il faut définir la variable avant de la passer en argument de la fonction.
    Vous n'êtes pas au bout de vos peines, car avec tkinter, certaines fonctions ne seront pas appelée depuis un endroit de votre code mais par tkinter lui même: impossible de récupérer leur retour et difficile de leur passer des arguments.
    Pour y voir plus clair, il va falloir passer un peu de temps dans les tutos.

    - W
    Ah d'accord merci, je vais m'y mettre maintenant.
    Mais sinon es-ce-que je pourrais changer les sliders pour des spinboxs ? Ou es-ce-que j'aurais le même problème ?

  10. #10
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2018
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Revilome Voir le message
    Ah d'accord merci, je vais m'y mettre maintenant.
    Mais sinon es-ce-que je pourrais changer les sliders pour des spinboxs ? Ou es-ce-que j'aurais le même problème ?
    Je viens d'essayer avec une spinbox et ça fonctionne ! Donc je vais changer mes slider pour des spinboxs même si c'est moins beau.
    Merci

Discussions similaires

  1. déplacer une image
    Par xeland dans le forum Windows
    Réponses: 7
    Dernier message: 13/02/2008, 14h33
  2. Déplacer une image dans un formulaire
    Par WITER dans le forum IHM
    Réponses: 2
    Dernier message: 01/11/2007, 03h47
  3. Déplacer une image non téléchargée
    Par Asmodean dans le forum Langage
    Réponses: 1
    Dernier message: 05/07/2007, 12h27
  4. Déplacer une image
    Par prgasp77 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/05/2007, 17h35
  5. Déplacer une image
    Par rikku84 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 19/04/2007, 02h00

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