OVH Cloud OVH Cloud

message+entry ?

12 réponses
Avatar
alainL
Bonjour,
Existe-t-il une solution qui permet d'afficher dans un même objet un message
déjà enregistré qui serait modifiable par le lecteur et re-enregistrable une
fois modifié (ou supprimé)?
Sinon, peut-on préciser la taille (width et height) de "entry" afin de le
cadrer proprement dans la page.
Merci
alain

2 réponses

1 2
Avatar
Bruno Desthuilliers


"Eric Brunel" a écrit dans le message de groupe
de discussion :
Pour compléter ce que les autres ont déjà dit:

On Tue, 04 Dec 2007 22:26:31 +0100, alainL
wrote:
entry.text=notes # (là je sais pas si ca marche pour afficher
tout le contenu du fichier dans Entry à l'ouverture, SI le fichier
existe)


Ca ne marchera pas: ça va juste créer dynamiquement un attribut 'text'
pour entry, et c'est tout.

Pour changer le texte de l'entry, on peut faire soit:

entry.delete(0, END)
entry.insert(0, notes)

soit (plus pratique à l'usage):

entryVar = StringVar()
entry.configure(textvariable=entryVar) # ou passer l'option à la
création
entryVar.set(notes)



Effectivement, la lecture ne marche pas avec ça:
____________________________________________
try:
f = open(ficjour) # 'r' par defaut
except IOError, e:
pass
else:
notes= f.readlines()
entry.text=notes
f.close()
========================================= > unindent does not match any outer indentation level

J'ai ce message d'erreur mais je ne pige pas !


C'est pourtant écrit en toutes lettres : tu a un problème d'indentation
dans ton code (en l'occurrence, la dernière ligne, 'f.close()', qui
devrait être au même niveau que la ligne précédente. Une fois ça
corrigé, ça devrait marcher pour la partie lecture de fichier. Pour ce
qui est de l'affectation du texte lu à ton widget entry, voir les
conseils de Eric ci-dessus.



Avatar
alainL
"Bruno Desthuilliers" a
écrit dans le message de groupe de discussion :
475686b2$0$5362$
C'est pourtant écrit en toutes lettres : tu a un problème d'indentation
dans ton code (en l'occurrence, la dernière ligne, 'f.close()', qui
devrait être au même niveau que la ligne précédente. Une fois ça corrigé,
ça devrait marcher pour la partie lecture de fichier. Pour ce qui est de
l'affectation du texte lu à ton widget entry, voir les conseils de Eric
ci-dessus.


Merci. Ca vient ! Pour l'indentation, il va me falloir un fil à plomb :-)))
____________________________________________________
try:
f = open(ficjour,'r')
except IOError, e:
pass
else:
entr1= Entry(fen1, bg='white')
notes = f.readlines()
entr1Var = StringVar()
entr1.configure(textvariable=entr1Var)
entr1Var.set(notes)
f.close()
_____________________________________________________

Deux nvx prb:
- la box de entry est de taille fixe, trop petite pour le fichier.
Si je saisis entr1= Entry(fen1, width 0, bg='white'), la box est sans
limite de taille à droite ?
- readlines affiche tout à la queue leuleu, avec un [ et peut-être un n
Comment faire ? readline --->label 1, readline ---->label2..... ?
N'y a-t-il pas un widget à pêcher qq part qui ressemblerait au RTB de VB ?
Merci
alain

1 2