Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

wxpython ?

2 réponses
Avatar
peracciu
Bonjour,

Je tente de d=E9velopper une petite application, et j'ai quelques petits
probl=E8mes, questions.

Gestion des =E9v=E8nements :

> self.txtEEM =3D wx.TextCtrl(self.conteneur00,-1,value=3Dstr(self.eem))
> self.Bind(wx.EVT_TEXT_ENTER,self.OnPressEnterEEM,self.txtEEM)
=2E..
> def OnPressEnterEEM(self,evt):

Voici la d=E9claration d'un champ texte, je voudrais r=E9cup=E9rer son
contenue (value) dans la m=E9thode qui g=E8re l'=E9v=E8nement
'OnPressEnterEEM(self,evt)'. Par defaut c'est 'str(self.eem)' mais si
elle est modifi=E9e comme faire ?
Je pensais r=E9ussir =E0 partir de la variable evt, mais non rien a faire
je ne trouve pas ! merci d'avance.

M=EAme chose avec un radioButton

> for i in self.cbTxt:
> radioButton =3D wx.RadioButton(self.conteneur20,-1,label=3Du' '+self.cbT=
xt[i])
> self.panelSizer3.Add(radioButton,(i+1,0),(1,1),wx.EXPAND)
> self.Bind(wx.EVT_RADIOBUTTON,self.OnPressRadioButton,radioButton)

Voici la d=E9claration, il est construit =E0 partir d'un
dico[indice,label].
Je voudrais via la m=E9thode 'OnPressRadioButton' savoir quelle case est
coch=E9e, dois je rajouter un id dans la d=E9claration du radioButton, n'y
a t'il pas un moyen d'avoir acc=E8s via la variable evt de la m=E9thode
'OnPressRadioButton' au label de la source de l'=E9v=E8nement.

Dessin :

Je voudrais pouvoir tracer des courbes avec WXpython, apr=E8s recherche
je regrette de ne pas avoir utiliser tkinder !!!

Pour l'instant pour tracer 'une courbe' j'utilise la m=E9thode
DrawPointList !!! mais le r=E9sultat est tr=E8s moyen, il y a bien la
m=E9thode DrawLineList mais je n'arrive pas a la faire marcher =E7a
retourne toujours une erreur.
N'y a t il pas d'autre m=E9thode pour tracer une droite entre deux
points ?

Solution de folie envisager, peut on mixer tkinder et wxpython, car si
oui je fais mes courbe dans un panel tkinder et je l'ajoute dans mon
appli.
Autre solution utiliser tkinder pour g=E9n=E9rer un jpeg et l'afficher
dans mon application.

Mais bon j'aimerais que =E7a reste des solutions =E0 envisager, il doit
bien y avoir un moyen avec wxpython ! merci pour votre aide.

Derni=E8re chose, si vous savez ou je peux trouver un petit script
(wxpython) qui exporte un wx.Panel en jpeg, eps ou bmp, merci
d'avance.

cdlt P

2 réponses

Avatar
Amaury Forgeot d'Arc
Bonsoir,
a écrit :
Bonjour,

Je tente de développer une petite application, et j'ai quelques petits
problèmes, questions.

Gestion des évènements :

self.txtEEM = wx.TextCtrl(self.conteneur00,-1,value=str(self.eem))
self.Bind(wx.EVT_TEXT_ENTER,self.OnPressEnterEEM,self.txtEEM)


...
def OnPressEnterEEM(self,evt):



Voici la déclaration d'un champ texte, je voudrais récupérer son
contenue (value) dans la méthode qui gère l'évènement
'OnPressEnterEEM(self,evt)'. Par defaut c'est 'str(self.eem)' mais si
elle est modifiée comme faire ?
Je pensais réussir à partir de la variable evt, mais non rien a faire
je ne trouve pas ! merci d'avance.



evt.GetObject() ramène le contrôle qui a généré l'événement.
Dans ton cas, quelque chose comme
evt.GetObject().GetValue()
devrait faire l'affaire

Même chose avec un radioButton

for i in self.cbTxt:
radioButton = wx.RadioButton(self.conteneur20,-1,label=u' '+self.cbTxt[i])
self.panelSizer3.Add(radioButton,(i+1,0),(1,1),wx.EXPAND)
self.Bind(wx.EVT_RADIOBUTTON,self.OnPressRadioButton,radioButton)



Voici la déclaration, il est construit à partir d'un
dico[indice,label].
Je voudrais via la méthode 'OnPressRadioButton' savoir quelle case est
cochée, dois je rajouter un id dans la déclaration du radioButton, n'y
a t'il pas un moyen d'avoir accès via la variable evt de la méthode
'OnPressRadioButton' au label de la source de l'évènement.



Comme ci-dessus, evt.GetObject() ramène le radioButton, mais là, je
crois que c'est GetLabel() qui ramène le libellé.

Dessin :

Je voudrais pouvoir tracer des courbes avec WXpython, après recherche
je regrette de ne pas avoir utiliser tkinder !!!

Pour l'instant pour tracer 'une courbe' j'utilise la méthode
DrawPointList !!! mais le résultat est très moyen, il y a bien la
méthode DrawLineList mais je n'arrive pas a la faire marcher ça
retourne toujours une erreur.
N'y a t il pas d'autre méthode pour tracer une droite entre deux
points ?

Solution de folie envisager, peut on mixer tkinder et wxpython, car si
oui je fais mes courbe dans un panel tkinder et je l'ajoute dans mon
appli.
Autre solution utiliser tkinder pour générer un jpeg et l'afficher
dans mon application.



Peut-être, mais alors il faut mixer les boucles d'événements des deux
systèmes, et c'est le début de beaucoup de soucis.

Mais bon j'aimerais que ça reste des solutions à envisager, il doit
bien y avoir un moyen avec wxpython ! merci pour votre aide.

Dernière chose, si vous savez ou je peux trouver un petit script
(wxpython) qui exporte un wx.Panel en jpeg, eps ou bmp, merci
d'avance.



Sous Windows, la librairie PIL sait le faire:
http://python.developpez.com/cours/pilhandbook/php/imagegrab.php
Quelque chose comme
rect = monpanel.GetScreenRect()
rgb = ImageGrab.grab((rect.left, rect.top, rect.right, rect.bottom))


Par ailleurs, as-tu essayé la fameuse *démo* de wxPython? C'est une mine
d'exemples, on peut voir le code source à l'oeuvre et même le modifier
pour tester de nouvelles combinaisons ! Indispensable. Si si, J'insiste.

--
Amaury
Avatar
peracciu
Merci beaucoup,

Pour les évènement lorsqu'il n'y a qu'un objet écouté on peut
directement utiliser objet.GetLabel() ou GetValue().

Pour les radiobox en faite ma déclaration posait problème car seul le
dernier existait ! dans le for ils sont écrasés, j'ai donc utilisé un
listbox je crois, et sa marche très bien merci.

Pour le reste je vais suivre vos conseils merci.