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 :

tkColorChooser.askcolor title


Sujet :

Tkinter Python

  1. #1
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut tkColorChooser.askcolor title
    Salut,

    J'ai un problème avec le tkColorChooser. La doc dit que le paramètre title de askcolor s'affiche dans la barre de titre. J'ai beau remplir ce paramètre, il y a toujours le 'Color' par défaut dans la barre de titre... Je suis sous windows (XP et seven) et python 2.7... Quelqu'un a une idée?

    A+

    Pfeuh

    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
     
    import Tkinter as gui
    import tkColorChooser
     
    class COLOR:
        def __init__(self, value=0,label=''):
            self.value = value
            self.label = label
     
        def set(self, value):
            self.value = value
     
        def get(self):
            return self.value
     
        def getLabel(self):
            return self.label
     
    def setColor(obj):
        label = "Select %s"%obj.getLabel()
        print label
        color = tkColorChooser.askcolor(color="#%06x"%(obj.get()), title="Select %s"%label)
        if color != (None, None):
            color = int(color[1][1:], 16)
            self.bitmap.setForeground(color)
            self.refresh()
     
    def appQuit(event=None):
        win.quit()
     
    win = gui.Tk()
    bg = COLOR(0, label='Background')
    fg = COLOR(0xfffff, label='Foreground')
    gui.Button(win, text="Background color", command=lambda obj=bg:setColor(obj)).grid()
    gui.Button(win, text="Foreground color", command=lambda obj=fg:setColor(obj)).grid()
    win.bind("<Escape>", appQuit)
    win.mainloop()

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 064
    Par défaut
    Peut-être y a-t-il conflit entre ta variable color et ton paramètre color sur cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    color = tkColorChooser.askcolor(color="#%06x"%(obj.get()), title="Select %s"%label)

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Si ce n'est le self dans la fonction je ne vois pas trop d'erreur dans le code de pfeuh. Du moins il tourne sous tux (avec le titre) avant d'arriver au self.

    A vrais dire je pense (mais je me trompe peut être) que le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from Tkinter import *
     
    root = Tk()
    root.tk.call("tk_chooseColor", "-initialcolor", "gray", "-title", "Choose color")
    root.mainloop()
    donne le même résultat sous Windows: Pas de titre.

    Il me semble que sous Linux cela utilise Tk::ColorEditor alors que sous Windows c'est du natif: L'option 'title' est elle ignorée sous Windows ? (rien pour tester) Ce ne serait pas la première fois qu'une option ne soit pas prise en compte d'un WM à l'autre.

    Utiliser Tk::ColorEditor sous Windows ? Je ne sais pas si c'est possible.

    @+

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Il semble que cela soit aussi le cas pour les autres wrappers
    Exemple avec wx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Vue d'ensemble de wxColourDialog
     
    Classes: wxColourDialog, wxColourData
     
    La boite de dialogue wxColourDialog présente un sélecteur de couleur à l'utilisateur, et retourne les informations sur la couleur sélectionnée.
     
    Le sélecteur de couleur de MS Windows
     
    Sous Windows, le sélecteur de couleur natif est utilisé. Il se présente sous la forme d'une boite de diaogue avec trois zones principales : en haut à gauche, une palette de 48 couleurs les plus utilisées est affichée. En dessous, il y a une palette de 16 'couleurs presonnalisées' qui peuvent être définies par l'application si désiré. En plus, l'utilisateur peut ouvrir la boite de dialogue pour afficher un panel à droite contenant des contrôles pour sélectionner une couleur précise, et l'ajouter à la palette des couleurs personnalisées.
     
    Le sélecteur de couleur générique
     
    Sous les plateformes non-MS Windows, le sélecteur de couleur est une simulation de la plupart des fonctionnalités du sélecteur MS Windows. Deux palettes de 48 couleurs standards et 16 couleurs personnalisées sont présentées, avec une zone à droite contenant trois curseurs permettant à l'utilisateur de sélectionner une couleur personnalisée à partir de ses composantes rouge, verte et bleue. Cette couleur peut être ajoutée à la palette des couleurs personnalisées, et remplacera soit la couleur sélectionnée, soit la première dans la palette si aucune n'est sélectionnée. Les curseurs de couleur RGB ne sont pas optionnels dans le sélecteur de couleur générique. Le sélecteur générique de couleur est également disponible sous MS Windows; il a pour nom wxGenericColourDialog.
    A confirmer mais cela ressemble bien à une option non prise en compte sous Windows

  5. #5
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Peut-être y a-t-il conflit entre ta variable color et ton paramètre color sur cette ligne.
    J'ai changé la variable color = en tempcolor = ça ne résout pas le problème.
    Citation Envoyé par PauseKawa Voir le message
    Tk::ColorEditor sous Windows ? Je ne sais pas si c'est possible.
    Pas avec mon niveau de connaissance, en tout cas...

    Citation Envoyé par PauseKawa Voir le message
    cela ressemble bien à une option non prise en compte sous Windows
    C'est que que j'ai pensé aussi.

    Merci à vous d'avoir regardé le problème.

    A+

    Pfeuh

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Juste pour ma culture windows que donne le code donné en #3 ?

    Citation Envoyé par pfeuh Voir le message
    Pas avec mon niveau de connaissance, en tout cas...
    Tout se trouve

  7. #7
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    Juste pour ma culture windows que donne le code donné en #3 ?
    Pareil que les autres.

    rien à faire, même en passant par la classe Chooser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import tkColorChooser
    import Tkinter
     
    root = Tkinter.Tk()
    root.title("Hello world")
     
    me = tkColorChooser.Chooser(initialcolor="red", title="master-color", parent=root)
    me.show()
    Au fait, il est passé où le color-chooser dans Python3/tkinter ?
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  8. #8
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 064
    Par défaut
    Qu'est-ce que te retournes un print après cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    color = tkColorChooser.askcolor(color="#%06x"%(obj.get()), title="Select %s"%label)
    print color

  9. #9
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    Juste pour ma culture windows que donne le code donné en #3 ?
    Je l'ai mis en pièce jointe, c'est exactement la même sortie que mon bout de code.

    Citation Envoyé par fred1599 Voir le message
    Qu'est-ce que te retournes un print après cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    color = tkColorChooser.askcolor(color="#%06x"%(obj.get()), title="Select %s"%label)
    print color
    ça donne le tuple attendu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((255, 0, 0), '#ff0000')
    Images attachées Images attachées  

  10. #10
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    A lire

    @+

  11. #11
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Puisque pfeuh a répondu sur l'autre sujet
    Citation Envoyé par pfeuh Voir le message
    On pourrait donc penser que le problème du topic original est dans le wrapper Tcl-Tk pour python sous windows?
    je propose une solution 'de substitution': Passer par subprocess.

    La distribution Python sous Windows est fournie avec Tcl et tout particulièrement wish (pour moi c:\Tcl\bin\wish85.exe).
    A partir de la on utilise subprocess avec un pipe sur stdout pour exécuter du code tcl et en récupérer la sortie.

    Bidon ? Sans doute... Mais je n'ai pas d'autre solution.

    Je confirme qu'en Tcl/Tk sous Windows le titre est bien affiché.

    @+

Discussions similaires

  1. Title Bar
    Par Pilou_m79 dans le forum MFC
    Réponses: 5
    Dernier message: 18/05/2005, 17h14
  2. alt/title => bots
    Par C.M dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 01/04/2005, 16h01
  3. Problème formatage dans balise title / alt
    Par jflebegue dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 09/12/2004, 15h18
  4. probleme de taille de title bar
    Par Daniel Spring dans le forum C++Builder
    Réponses: 1
    Dernier message: 15/11/2004, 17h26
  5. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58

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