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 :

Faire varier couleur (+ luminosité si cela existe) d'une fenêtre en changeant réglages sur une autre fenêtre


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Faire varier couleur (+ luminosité si cela existe) d'une fenêtre en changeant réglages sur une autre fenêtre
    J'ai essayé tant bien que mal de faire le programme, mais c'est la première fois que j'utilise l'interface graphique de Python et je tourne en rond parce que je ne connais pas les fonctions qui pourraient m'être utiles (J'ai regardé plusieurs tutoriels, mais je sais à peine gérer les widgets de base).
    Voici donc mes problèmes :
    1. La syntaxe..
    2. Quelles couleurs sont disponibles ?
    3. Afficher deux fenêtres, une avec la liste des réglages (couleur et luminosité), une avec le rendu (donc la couleur et la luminosité choisie). Dans le pire des cas la luminosité n'est pas la chose primordiale.
    4. Si ce n'est pas chose trop difficile, est-il possible d'utiliser le widget scale pour choisir le pourcentage de bleu, de rouge, etc. de l'image ? Encore une fois si ce n'est pas possible je me contenterai d'un affichage entièrement bleu, ou rouge etc.

    Merci beaucoup de votre aide, j'en ai vraiment besoin


    Voici ce que j'ai essayé de faire :

    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
    from tkinter import *
     
    def changer_couleur():
        Fond.config(bg= couleur.get()) #Ici je ne comprends pas, Python m'affiche l'erreur unknown color name, alors que sur un autre programme sur lequel je me suis inspiré cela fonctionne
     
    Ecran = Tk()
    Ecran.title('Affichage couleurs')
    Ecran.geometry('1100x500')
    Tableau = Tk()
    Tableau.title('Réglages couleurs')
     
    Fond = Canvas(Ecran, width = 1100, height = 500, bg = 'BLUE')
    Fond.pack()
     
    couleur=StringVar()
     
    choix = Radiobutton(Tableau, text='Rouge', variable=couleur, value='RED', command=changer_couleur())
    choix.grid(row = 0, column = 0, sticky = E+W+N+S)
    choix = Radiobutton(Tableau, text='Vert', variable=couleur, value='GREEN', command=changer_couleur())
    choix.grid(row = 0, column = 1, sticky = E+W+N+S)
    choix = Radiobutton(Tableau, text='Bleu', variable=couleur, value='BLUE', command=changer_couleur())
    choix.grid(row = 0, column = 2, sticky = E+W+N+S)
     
    choix.select()
    choix.invoke()
     
    Ecran.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,

    Le plus, simple est d'utiliser la boîte de dialogue appelée colorchooser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> import tkinter as tk
    >>> from tkinter import colorchooser
    >>> root = tk.Tk()
    >>> color = colorchooser.askcolor()
    >>> color
    ((106.4140625, 83.32421875, 238.9296875), '#6a53ee')
    >>> root['bg']=color[1]
    >>>
    Citation Envoyé par PoulusMagnet Voir le message
    J4. Si ce n'est pas chose trop difficile, est-il possible d'utiliser le widget scale pour choisir le pourcentage de bleu, de rouge, etc. de l'image ? Encore une fois si ce n'est pas possible je me contenterai d'un affichage entièrement bleu, ou rouge etc.

    Merci beaucoup de votre aide, j'en ai vraiment besoin
    Si la couleur saisie s'exprime en "pourcentages", il faut convertir cela en code couleur acceptable pour tk i.e. respecter ce que raconte la documentation par exemple celle-ci.

    Mais avant çà, il faut apprendre à programmer avec tkinter:
    ligne 9: "Tableau = Tk()" doit être remplacé par "Tableau = Toplevel()"
    lignes 17,19,21: command prend en paramètre une "fonction". Les "()" exécutent la fonction et le paramètre passé sera "None". Et comme la fonction est exécuté alors que la variable est encore vide, vous aurez un message d'erreur.

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup ! Pour les couleurs c'est même plus que ce que je n'espérais !

    Je n'ai pas trouvé de réponse satisfaisante en cherchant un peu sur le net donc je m'en remet encore à vous :

    1. Quelles sont les utilités des lignes 13 et 14 ? Si je les enlève je ne vois aucune différence.
    2. Comment faire réapparaître la fenêtre de changement de couleur si je veux changer de couleur autrement qu'en relançant le programme ? Par exemple avec un bouton (en plus d'un bouton Quitter que j'ai déjà rajouté) sur la fenêtre root ? En fait il faudrait qu'elle puisse se mettre en arrière plan à chaque fois de la fenêtre root, car le but final est de faire des mesures de luminosité en fonction de la couleur de l'écran, donc la fenêtre de réglage de couleur ne doit pas parasiter sur l'écran.
    3. Est-ce que c'est possible avec python, de transformer ce programme en logiciel que je peux exécuter depuis mon bureau sans passer par l'interface python ? (ce serait la cerise sur le gâteau, mais le gâteau tout seul me convient déjà très bien )

    J'ai maintenant ç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
    import tkinter as tk
    from tkinter import colorchooser
     
    root = tk.Tk()
    root.title('Affichage couleurs')
    root.geometry('1366x768')
    root.attributes("-fullscreen", 1)
     
    root.bouton_quitter = tk.Button(root, text='Quitter', command=root.destroy)
    root.bouton_quitter.pack(side='top')
     
    color = colorchooser.askcolor()
    color                
    ((106.4140625, 83.32421875, 238.9296875), '#6a53ee')
     
    root['bg']=color[1]
     
    root.mainloop()
    Encore merci de votre aide

  4. #4
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par PoulusMagnet Voir le message
    Merci beaucoup ! Pour les couleurs c'est même plus que ce que je n'espérais !

    Je n'ai pas trouvé de réponse satisfaisante en cherchant un peu sur le net donc je m'en remet encore à vous :

    1. Quelles sont les utilités des lignes 13 et 14 ? Si je les enlève je ne vois aucune différence.
    2. Comment faire réapparaître la fenêtre de changement de couleur si je veux changer de couleur autrement qu'en relançant le programme ? Par exemple avec un bouton (en plus d'un bouton Quitter que j'ai déjà rajouté) sur la fenêtre root ? En fait il faudrait qu'elle puisse se mettre en arrière plan à chaque fois de la fenêtre root, car le but final est de faire des mesures de luminosité en fonction de la couleur de l'écran, donc la fenêtre de réglage de couleur ne doit pas parasiter sur l'écran.
    3. Est-ce que c'est possible avec python, de transformer ce programme en logiciel que je peux exécuter depuis mon bureau sans passer par l'interface python ? (ce serait la cerise sur le gâteau, mais le gâteau tout seul me convient déjà très bien )
    Bonjour,
    Peut-être qu'en suivant un petit tutoriel ces questions trouveraient des explications, non?

    Clodion

  5. #5
    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 PoulusMagnet Voir le message
    1. Quelles sont les utilités des lignes 13 et 14 ? Si je les enlève je ne vois aucune différence.
    Elles servent juste à montrer à quoi ressemble l'objet couleur retourné par "colorchooser.askcolor()"

    Citation Envoyé par PoulusMagnet Voir le message
    2. Comment faire réapparaître la fenêtre de changement de couleur si je veux changer de couleur autrement qu'en relançant le programme ? Par exemple avec un bouton (en plus d'un bouton Quitter que j'ai déjà rajouté) sur la fenêtre root ?
    Ben, vous créez un Button qui appelle une fonction qui exécute les instructions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    color = colorchooser.askcolor()
    root['bg']=color[1]
    Citation Envoyé par PoulusMagnet Voir le message
    3. Est-ce que c'est possible avec python, de transformer ce programme en logiciel que je peux exécuter depuis mon bureau sans passer par l'interface python ? (ce serait la cerise sur le gâteau, mais le gâteau tout seul me convient déjà très bien )
    Le contrôle de ce qu'il se passe lorsque vous cliquez sur un fichier d'extension ".py" dépend de votre environnement système.

    Citation Envoyé par PoulusMagnet Voir le message
    Je n'ai pas trouvé de réponse satisfaisante en cherchant un peu sur le net donc je m'en remet encore à vous :
    Pas facile de trouver des réponses quand on ne sait pas trop quelles questions poser. Et pour poser de bonnes questions, il faut prendre le temps d'apprendre à programmer avec tkinter et Python... Ca à l'air méchant dit comme çà mais, imaginons que vous soyez débordant d'imagination. Si vous ne savez pas traduire vos idées en code, vous allez être rapidement frustré d'avoir à attendre que quelqu'un prenne le temps de traduire cela pour vous.

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

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je sais que la meilleure chose à faire si on veut avoir ce que l'on a en tête est de faire par soi-même, et dans le cas présent s'investir en prenant le temps d'apprendre la programmation graphique sur python.
    La problème est qu'en classe préparatoire c'est justement les temps qui nous manque c'est pour cela que je suis passé par un forum
    Je pense qu'avec tous les outils que vous m'avez donné je peux largement me débrouiller. Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/10/2009, 11h55
  2. Faire une somme en se basant sur une valeur donnée
    Par caco92 dans le forum Formules
    Réponses: 2
    Dernier message: 09/10/2008, 11h39
  3. faire varier couleur d'une image avec un curseur
    Par reventlov dans le forum Débuter
    Réponses: 1
    Dernier message: 02/09/2008, 17h41
  4. [Débutant] Faire une boite qui s'affiche sur les autres
    Par Destiny dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 21/08/2007, 09h40
  5. Réponses: 2
    Dernier message: 29/03/2007, 17h09

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