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

wxWidgets Discussion :

Comment récupérer et utiliser les informations des boîtes de dialogue ?


Sujet :

wxWidgets

  1. #1
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Points : 327
    Points
    327
    Par défaut Comment récupérer et utiliser les informations des boîtes de dialogue ?
    Bonjour,

    Le langage utilisé pour ce projet est wLua et la bibliothèque wxWidgets.

    Je souhaite, lors d'une utilisation des boîtes de dialogue wxColourDialog() et wxFontDialog() pouvoir récupérer à la réouverture du programme, les informations précédemment utilisées...( couleur et font )

    Non seulement je ne sais pas comment faire, mais qui plus est, je ne sais même pas ou chercher!

    J'ai réussi, ( peut-être bêtement ) à sauvegarder les informations brutes dans le style " userdata: 011A5780 [wxColour(010CDEF0, 126)] "... oups! et après... ( je ne sais pas les exploiter...)

    Google ne m'a rien apporté de concluant, quoiqu'il me semble avoir lu quelque part que wxValidator(), pourrait-être la solution... mais je suis sûr de rien et en tout état de cause, je n'ai trouvé aucun code d'exemple dans ce sens.

    Je vous remercie d'avance, de toute l'aide que vous pourrez m'apporter.. solution , idée, conseil...

    Claude

  2. #2
    Membre averti
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Points : 327
    Points
    327
    Par défaut Sauvegarde nlleCouleur et nlleFont
    Bonjour,

    Pour ne pas laisser une question sans réponse et en espérant que cela puisse servir, voici la solution à l'énigme que je me suis posé courant février.

    Mais tout d'abord, rendons à César, ce qui appartient à César.

    Et avant tout, je tiens à remercier le site http://wxdev.fr et plus particulièrement son administrateur Xaviou qui a su m'aider à résoudre mes problèmes, avec beaucoup de gentillesse, de savoir faire et avec une extrême rapidité.
    Encore merci.


    1/Comment sauvegarder une nouvelle couleur!
    Après avoir choisi une nouvelle couleur par: nlleCouleur = data:GetColour(), il suffit de faire ressortir les 3 couleurs fondamentales RVB, puis de les sauvegarder dans un fichier texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    -- On range chaque nlle couleur dans sa variable.
    			rouge = nlleCouleur:Red()
    			vert  = nlleCouleur:Green()
    			bleu  = nlleCouleur:Blue()
    			nlleCouleur = string.format("%3d,%3d,%3d", rouge, vert, bleu)
     
    -- On sauvegarde les nouvelles couleurs.
    	file = io.open("sauvegarde_couleur.txt", "w")
    	file:write(nlleCouleur)
    	file:close()
    Puis on les récupère et on les traite de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    -- On ouvre le fichier de sauvegarde.
    file = io.open("sauvegarde_couleur.txt", "r")
    nlleCouleur = file:read()
    file:close()
     
    -- On affiche la couleur sauvegardée, si elle existe.
    if (nlleCouleur ~= nil) then
    	rouge = tonumber(string.sub(nlleCouleur,1,3))
    	vert  = tonumber(string.sub(nlleCouleur,5,7))
    	bleu  = tonumber(string.sub(nlleCouleur,9,11))
    	panel:SetBackgroundColour(wx.wxColour(rouge, vert, bleu))
    end
    Il est vrai que lorsqu'on connait la solution, on se demande pourquoi on c'est pris le choux...mais bon!

    2/Comment sauvegarder une nouvelle Font et sa Couleur.
    La procédure pour sauvegarder la nouvelle couleur d'une Font, est exactement la même que celle utilisée pour sauvegarder la nouvelle couleur d'une wxColourDialog...
    Après avoir choisi une nouvelle couleur par: nlleFontCouleur = data:GetColour(), il suffit de faire ressortir les 3 couleurs fondamentales RVB, puis de les sauvegarder dans un fichier texte.
    Pour la Font, le procédé est différent, car il existe deux méthodes spécialisées pour sauvegarder et restituer une Font.
    - La sauvegarde se fait par: nlleFont:GetNativeFontInfoDesc().
    - Et sa restitution par: fontOrigine:SetNativeFontInfo(nom_de_la_Font_sauvegardée).

    On sauvegarde les nouvelles informations.
    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
     
    -- Si on clic sur le bouton "police", on affiche la boîte de dialogue.
    bouton:Connect(wx.wxEVT_LEFT_DOWN, function()
    local fontData=wx.wxFontData()
    local fontDialog = wx.wxFontDialog(textCtrl, fontData)
    	--fontDialog:ShowModal()
    	if (fontDialog:ShowModal() == wx.wxID_OK) then
    		local data = fontDialog:GetFontData()
    		font = data:GetChosenFont()
    		fontCouleur = data:GetColour()
    	end
    	textCtrl:SetFont(font)
    	textCtrl:SetForegroundColour(fontCouleur)
    	textCtrl:AppendText("que je viens de modifier.")
     
    	-- Sauvegarde de la nlleFont et de sa couleur.
    	nlleFont = font:GetNativeFontInfoDesc()
    	rouge = fontCouleur:Red()
    	vert  = fontCouleur:Green()
    	bleu  = fontCouleur:Blue()
    	nlleFontCouleur = string.format("%3d,%3d,%3d", rouge, vert, bleu)
     
    	-- On sauvegarde la nouvelle font et sa couleur dans un fichier.
    	file = io.open("sauvegarde_font.txt", "w")
    	file:write((nlleFont.."\n"))
    	file:write((nlleFontCouleur))
    	file:close()
    end)
    Puis on les restitue à la ré-ouverture du programme.
    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
     
    -- On ouvre le fichier de sauvegarde.
    file = io.open("sauvegarde_font.txt", "r")
    nlleFont 		= file:read()
    nlleFontCouleur = file:read()
    file:close()
     
    -- Sélection de la font.
    font = wx.wxFont(10, wx.wxFONTFAMILY_MODERN, wx.wxFONTSTYLE_NORMAL, wx.wxFONTWEIGHT_NORMAL, false, "Comic sans MS")
    if (nlleFont == nil) then
    	textCtrl:SetFont(font)
    	textCtrl:AppendText("Ceci est le texte écrit avec la Font d'origine... ")
    else
    	-- Utilisation de la font sauvegardée.
    	font:SetNativeFontInfo(nlleFont)
    	textCtrl:SetFont(font)
    	if (nlleFontCouleur ~= nil) then
    		rouge = tonumber(string.sub(nlleFontCouleur,1,3))
    		vert  = tonumber(string.sub(nlleFontCouleur,5,7))
    		bleu  = tonumber(string.sub(nlleFontCouleur,9,11))
    		textCtrl:SetForegroundColour(wx.wxColour(rouge, vert, bleu))
    	end
    	textCtrl:AppendText("Ceci est le texte écrit avec la nouvelle Font.")
    end
    Voilà.
    C'est peut-être pas la meilleure solution, mais en tout cas, ça fonctionne.

    Et si vous avez des commentaires, n'hésitez pas!

    Merci de m'avoir lu et @++

    Claude

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

Discussions similaires

  1. [XPATH] Récupérer les informations des nœuds parents
    Par sheepolata dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 08/04/2010, 13h49
  2. [phpBB][3] Récupérer les informations des sondages et faire une page de statistiques
    Par boubouchon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 06/04/2009, 20h47

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