Bonjour,
Programme python / pygtk
Fentre 1 :
+----------------------------------------+
| |
| +---------------------+ |
| Nom | | |
| +---------------------+ |
| |
| +---------------------+ |
| Prénom | | |
| +---------------------+ |
| |
+----------------------------------------+
| |
| +---------+ +---------+ |
| | OK | | CANCEL | |
| +---------+ +---------+ |
+----------------------------------------+
Fenêtre 2 :
+----------------------------------------+
| |
| |
| Bonjour Nom Prénom |
| |
| |
| |
+----------------------------------------+
| |
| +---------+ |
| | FERMER | |
| +---------+ |
+----------------------------------------+
Fenêtre 3
+----------------------------------------+
| |
| |
| Erreur trop de champs vide |
| |
| |
| |
+----------------------------------------+
| |
| +---------+ |
| | FERMER | |
| +---------+ |
+----------------------------------------+
Concept :
Au lancement du programme la fenêtre 1 apparaît, le fenêtre 2 n'est
appellée que dans le cas ou le nom et le prénom ont été saisi, sinon la
fenêtre 3 est affichée avec un message d'erreur.
Le code :
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
# Importation des modules
import pygtk
import gtk.glade
#### Fonctions
def on_BtnOk_WIndex_clicked (TxtNom, TxtPrenom, source=None,
event=None):
# On ne peut afficher la fentre rsultat que si l'utilisateur
# a bien saisi quelquechose
if TxtNom != "" and TxtPrenom != "":
WResult.show ()
else :
WErreur.show ()
def on_BtnCancel_WIndex_clicked(source=None, event=None):
gtk.main_quit ()
def on_BtnClose_WResult_clicked(source=None, event=None):
WResult.hide ()
def on_BtnClose_WErreur_clicked(source=None, event=None):
WErreur.hide ()
# Definition de ui
gui = gtk.glade.XML ("gui.glade")
# Capture des signaux
gui.signal_autoconnect(globals())
# Fenetres
WIndex = gui.get_widget ("WIndex")
WResult = gui.get_widget ("WResult")
WErreur = gui.get_widget ("WErreur")
# Boutons
# Labels
LblMsg = gui.get_widget ("LblMsg")
# Zones de de saisie
Txtnom = gui.get_widget ("TxtNom").get_text ()
TxtPrenom = gui.get_widget ("TxtPrenom").get_text ()
#### Lancement de la boucle ###
# La fentre rsultat n'apparat que si l'utilisateur a cliqu sur le
# bouton OK
WResult.hide ()
WErreur.hide ()
# boucle gtk
gtk.main()
Je ne comprend pas pour quelle raison les fonctions doivent être
définient en premier. La structure de mon programme est elle correcte ?
Les variables TxtNom et TxtPrénom sont globales et contienent le texte
saisi par l'utilisateur, me trompe ais-je ?
Lors du lancement du programme la fenêtre 3 apparaît bien que j'ai
précisé au programme de la cacher (cf : WErreur.hide() ), si je clique
sur le bouton OK de la fenêtre 1 (WIndex) je peux lire dans la console
le message suivant :
TypeError: on_BtnOk_WIndex_clicked() takes at least 2 arguments (1 given)
Est-ce que ce message me dit que je ne passe moins d'agument à ma
fonction quelle devrais en recevoir ?
Le choix de : # -*- coding: iso-8859-15 -*- est-il judicieux ?
Si ce n'est pas le cas lequel me conseillez-vous ?
Glade :
Dans la propriété des boutons à la ligne RESPONSE ID j'ai mis 0 est-ce
une erreur ou bien dois je mettre un GTK_RESPONSE_ ?
Quel debugger/éditeur/IDE/IDE+Debugger utilisez vous ?
Je vous en remercie d'avance,
Pascal
Téléchargements
-
La monnaie
La monnaie est un logiciel éducatif pour apprendre aux plus jeunes à compter et à payer en euros.
-
McAfee Total Protection for Enterprise
McAfee Total Protection for Enterprise est une solution de sécurité destinée aux entreprises et leur permettant de lutter efficacement contre tous ...
-
ZapMessenger
ZapMessenger est un logiciel pour supprimer toute trace du client de messagerie instantanée de Microsoft de votre ordinateur.
Tous les téléchargements