PYTHON : Probleme exec et entry
Résolu
spynaej
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
spynaej Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
spynaej Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je sèche...
Je cherche à générer dans une fonction en python (2.6.2), une Toplevel qui me présente les données d'une base (SQLite).
Je voudrais pouvoir utiliser le même gabarit pour ensuite modifier ou ajouter une entrée dans la table.
Je voudrais aussi que les champs soient nommés automatiquement en fonction de la structure de la table.
En gros, dans ma fenêtre, je veux voir ligne par ligne :
un Label avec le nom du champ et une Entry avec la valeur. L'entry doit pouvoir être configuré par la suite (donc il faut la nommer)
Je suis passé par un dictionnaire qui me fournit les StringVar():
vardic=dict((self.lst_champs[i],StringVar()) for i in range(nb_champs))
et par des "exec() in globals" pour attribuer automatiquement un nom à mes entry.
dans une boucle, (liée au nombre de champs):
for i in range(nb_champs):
my_ent=self.lst_champs[i]+"=Entry(frm,textvar=vardic['"+self.lst_champs[i]+"'])"
grid_my_ent=self.lst_champs[i]+".grid(column=1,row="+str(i)+")"
my_lab="Label(frm,text='"+self.lst_champs[i]+"').grid(column=0,row="+str(i)+")"
exec (my_lab) in globals()
exec (my_ent) in globals()
exec (grid_my_ent) in globals()
PROBLEME : selon que lance l'exec du Label en premier ou en dernier, il apparait (centré par dessus mon entry) ou pas (en dessous ?).
Comme si la valeur de column dans grid n'était pas prise en compte alors que celle de row l'est.
Si quelqu'un a une petite idée de ce qu'il m'arrive...
un peu d'aide serait bienvenue !
Merci !
Je sèche...
Je cherche à générer dans une fonction en python (2.6.2), une Toplevel qui me présente les données d'une base (SQLite).
Je voudrais pouvoir utiliser le même gabarit pour ensuite modifier ou ajouter une entrée dans la table.
Je voudrais aussi que les champs soient nommés automatiquement en fonction de la structure de la table.
En gros, dans ma fenêtre, je veux voir ligne par ligne :
un Label avec le nom du champ et une Entry avec la valeur. L'entry doit pouvoir être configuré par la suite (donc il faut la nommer)
Je suis passé par un dictionnaire qui me fournit les StringVar():
vardic=dict((self.lst_champs[i],StringVar()) for i in range(nb_champs))
et par des "exec() in globals" pour attribuer automatiquement un nom à mes entry.
dans une boucle, (liée au nombre de champs):
for i in range(nb_champs):
my_ent=self.lst_champs[i]+"=Entry(frm,textvar=vardic['"+self.lst_champs[i]+"'])"
grid_my_ent=self.lst_champs[i]+".grid(column=1,row="+str(i)+")"
my_lab="Label(frm,text='"+self.lst_champs[i]+"').grid(column=0,row="+str(i)+")"
exec (my_lab) in globals()
exec (my_ent) in globals()
exec (grid_my_ent) in globals()
PROBLEME : selon que lance l'exec du Label en premier ou en dernier, il apparait (centré par dessus mon entry) ou pas (en dessous ?).
Comme si la valeur de column dans grid n'était pas prise en compte alors que celle de row l'est.
Si quelqu'un a une petite idée de ce qu'il m'arrive...
un peu d'aide serait bienvenue !
Merci !
A voir également:
- PYTHON : Probleme exec et entry
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python
8 réponses
je sais que je repond pas a ta question mais je voulai te demané si tu sais comment lancer un application python a partire d'une page html
Bonjour,
Ouh Là... euh non... Tu parles d'un script python qui serait exécuté du côté serveur (CGI) ? ou d'une page HTML codé par tes soins en vue d'interfacer un programme python ?
Ouh Là... euh non... Tu parles d'un script python qui serait exécuté du côté serveur (CGI) ? ou d'une page HTML codé par tes soins en vue d'interfacer un programme python ?
voici le code html:
<HTML>
<HEAD><TITLE>Exercice avec Python</TITLE></HEAD>
<BODY>
<DIV ALIGN="center">
<IMG SRC="penguin.gif">
<H2>Page Web interactive</H2>
<P>Cette page est associée à un script Python</P>
<FORM ACTION="input_query.py" METHOD="post">
<INPUT TYPE="submit" NAME="send" VALUE="Exécuter le script">
</FORM>
</DIV></BODY></HTML>
<HTML>
<HEAD><TITLE>Exercice avec Python</TITLE></HEAD>
<BODY>
<DIV ALIGN="center">
<IMG SRC="penguin.gif">
<H2>Page Web interactive</H2>
<P>Cette page est associée à un script Python</P>
<FORM ACTION="input_query.py" METHOD="post">
<INPUT TYPE="submit" NAME="send" VALUE="Exécuter le script">
</FORM>
</DIV></BODY></HTML>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et voici le scripte python:
#! /usr/bin/python
# -*- coding: utf-8 -*-
# Affichage d'un formulaire HTML simplifié :
print "Content-Type: text/html\n"
print """
<H3><FONT COLOR="Royal blue">
Page web produite par un script Python
</FONT></H3>
<FORM ACTION="print_result.py" METHOD="post">
<P>Veuillez entrer votre nom dans le champ ci-dessous, s.v.p. :</P>
<P><INPUT NAME="visiteur" SIZE=20 MAXLENGTH=20 TYPE="text"></P>
<P>Veuillez également me fournir une phrase quelconque :</P>
<TEXTAREA NAME="phrase" ROWS=2 COLS=50>Mississippi</TEXTAREA>
<P>J'utiliserai cette phrase pour établir un histogramme.</P>
<INPUT TYPE="submit" NAME="send" VALUE="Action">
</FORM>
"""
#! /usr/bin/python
# -*- coding: utf-8 -*-
# Affichage d'un formulaire HTML simplifié :
print "Content-Type: text/html\n"
print """
<H3><FONT COLOR="Royal blue">
Page web produite par un script Python
</FONT></H3>
<FORM ACTION="print_result.py" METHOD="post">
<P>Veuillez entrer votre nom dans le champ ci-dessous, s.v.p. :</P>
<P><INPUT NAME="visiteur" SIZE=20 MAXLENGTH=20 TYPE="text"></P>
<P>Veuillez également me fournir une phrase quelconque :</P>
<TEXTAREA NAME="phrase" ROWS=2 COLS=50>Mississippi</TEXTAREA>
<P>J'utiliserai cette phrase pour établir un histogramme.</P>
<INPUT TYPE="submit" NAME="send" VALUE="Action">
</FORM>
"""