Je suis un petit nouveau dans le monde de PyGTK.
Ce que je souhaite creer : un formulaire et recuperer les informations entree pour les stocker dans un fichier texte.
mais je ne vois pas comment recuperer les informations et les stocker, ceci en cliquant sur un bouton...
Voici ce que j'ai fais pour le moment :
#!/usr/bin/env python
# exemple champsaisie.py
import gtk
import hildon
class SaisieTexte:
def fct_rappel_entree(self, widget, champsaisie):
textesaisi = champsaisie.get_text()
print "Contenu du champ de saisie : %s\n" % textesaisi
def __init__(self):
# Creation d'une nouvelle fenetre
app = hildon.App()
# This is a view in the main window. There can be multiple of these.
fenetre = hildon.AppView("View One")
# Set the view and titles to the application
app.set_title("UITest")
app.set_two_part_title(True)
app.set_appview(fenetre)
fenetre.connect("delete_event", gtk.mainquit)
boite_v = gtk.VBox(False, 0)
fenetre.add(boite_v)
boite_v.show()
boite_h1 = gtk.HBox(False, 0)
boite_v.add(boite_h1)
boite_h1.show()
label1 = gtk.Label("Nom")
boite_h1.pack_start(label1, True, True, 0)
label1.show()
champsaisie1 = gtk.Entry()
boite_h1.pack_start(champsaisie1, True, True, 0)
champsaisie1.connect("activate", self.fct_rappel_entree, champsaisie1)
champsaisie1.set_text("salut")
champsaisie1.insert_text(" tout le monde", len(champsaisie1.get_text()))
champsaisie1.select_region(0, len(champsaisie1.get_text()))
boite_v.pack_start(champsaisie1, True, True, 0)
champsaisie1.show()
boite_h2 = gtk.HBox(False, 0)
boite_v.add(boite_h2)
boite_h2.show()
label2 = gtk.Label("Prenom")
boite_h2.pack_start(label2, True, True, 0)
label2.show()
champsaisie2 = gtk.Entry()
boite_h2.pack_start(champsaisie2, True, True, 0)
champsaisie2.connect("activate", self.fct_rappel_entree, champsaisie2)
champsaisie2.set_text("salut")
champsaisie2.insert_text(" tout le monde", len(champsaisie2.get_text()))
champsaisie2.select_region(0, len(champsaisie2.get_text()))
boite_v.pack_start(champsaisie2, True, True, 0)
champsaisie2.show()
boite_h3 = gtk.HBox(False, 0)
boite_v.add(boite_h3)
boite_h3.show()
label3 = gtk.Label("Mail")
boite_h3.pack_start(label3, True, True, 0)
label3.show()
champsaisie3 = gtk.Entry()
boite_h3.pack_start(champsaisie3, True, True, 0)
champsaisie3.connect("activate", self.fct_rappel_entree, champsaisie3)
champsaisie3.set_text("salut")
champsaisie3.insert_text(" tout le monde", len(champsaisie3.get_text()))
champsaisie3.select_region(0, len(champsaisie3.get_text()))
boite_v.pack_start(champsaisie3, True, True, 0)
champsaisie3.show()
bouton1 = gtk.Button(stock=gtk.STOCK_SAVE)
bouton1.connect_object("clicked", gtk.mainquit, fenetre)
boite_v.pack_start(bouton1, True, True, 0)
bouton1.set_flags(gtk.CAN_DEFAULT)
bouton1.grab_default()
bouton1.show()
fenetre.show()
app.show()
bouton2 = gtk.Button(stock=gtk.STOCK_CLOSE)
bouton2.connect_object("clicked", gtk.mainquit, fenetre)
boite_v.pack_start(bouton2, True, True, 0)
bouton2.set_flags(gtk.CAN_DEFAULT)
bouton2.grab_default()
bouton2.show()
fenetre.show()
app.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
SaisieTexte()
main()
Si quelqu'un peu m'aiguiller se serait sympa.
Merci.
# Début de réponse ....
Posté par jlh . Évalué à 1.
Quelque chose du genre :
bouton1.connect("clicked", fct_sauver_entrees)
avec :
def fct_sauver_entrees():
text1 = champsaisie1.get_text()
text2 = champsaisie2.get_text()
text3 = champsaisie3.get_text()
etc ...
# Indispensable
Posté par rangzen (site web personnel) . Évalué à 2.
http://docs.python.org/lib/lib.html
http://diveintopython.org/toc/index.html
http://www.pygtk.org/pygtk2reference/gtk-class-reference.htm(...)
http://aspn.activestate.com/ASPN/Python/Cookbook/
http://wikipython.flibuste.net/moin.py/FrontPage
# Merci...
Posté par Paulinlemalin . Évalué à 1.
Je vais essayer de la maniere dont tu m'a parler jlh... ca m'a l'air pas mal du tout !!!
Pour les liens, Rangzen, j'en avais deja trouver certains mais il y en a de tres bon dqns ceux que tu m'a conseillé... Je vais essayer de me dépatouiller avec ca...
Encore merci...
# modification aporter mais erruer venue de nul part...
Posté par Paulinlemalin . Évalué à 1.
alors ja'ai appoerter des modification a mon prog mais j'ai une ereur qui persiste :
Traceback (most recent call last):
File "saisietexte.py", line 130, in ?
SaisieTexte()
File "saisietexte.py", line 108, in __init__
bouton1.connect("clicked", self.enter_callback(fenetre, champsaisie1, champsaisie2, champsaisie3, champsaisie4, champsaisie5, champsaisie6))
TypeError: second argument must be callable
Je ne vois pas d'ou ca viens mais je pense aue les experts en python on du deja avoir ce souci...
Mon code est le suivant :
#!/usr/bin/env python
import gtk
import hildon
class SaisieTexte:
def enter_callback(self, fenetre, entry1, entry2, entry3, entry4, entry5, entry6):
entry_text1 = entry1.get_text()
entry_text2 = entry2.get_text()
entry_text3 = entry3.get_text()
entry_text4 = entry4.get_text()
entry_text5 = entry5.get_text()
entry_text6 = entry6.get_text()
logfile = open('test.txt', 'w')
logfile.write(entry_text1)
logfile.write(entry_text2)
logfile.write(entry_text3)
logfile.write(entry_text4)
logfile.write(entry_text5)
logfile.write(entry_text6)
logfile.close()
print file('test.txt').read()
def __init__(self):
app = hildon.App()
fenetre = hildon.AppView("Form appview")
app.set_title("Form title")
app.set_two_part_title(True)
app.set_appview(fenetre)
fenetre.connect("delete_event", gtk.mainquit)
boite_v0 = gtk.VBox(False, 0)
fenetre.add(boite_v0)
boite_v0.show()
tab = gtk.Table(70, 120, True)
boite_v0.add(tab)
tab.show()
label1 = gtk.Label("Nom :")
tab.attach(label1, 18, 30, 1, 9)
label1.show()
champsaisie1 = gtk.Entry()
champsaisie1.set_max_length(50)
tab.attach(champsaisie1, 60, 110, 1, 9)
champsaisie1.show()
label2 = gtk.Label("Prenom :")
tab.attach(label2, 19, 32, 11, 19)
label2.show()
champsaisie2 = gtk.Entry()
champsaisie2.set_max_length(50)
tab.attach(champsaisie2, 60, 110, 11, 19)
champsaisie2.show()
label3 = gtk.Label("Adresse :")
tab.attach(label3, 19, 32, 21, 29)
label3.show()
champsaisie3 = gtk.Entry()
champsaisie3.set_max_length(50)
tab.attach(champsaisie3, 60, 110, 21, 29)
champsaisie3.show()
label4 = gtk.Label("Code Postal :")
tab.attach(label4, 19, 36, 31, 39)
label4.show()
champsaisie4 = gtk.Entry()
champsaisie4.set_max_length(50)
tab.attach(champsaisie4, 60, 110, 31, 39)
champsaisie4.show()
label5 = gtk.Label("Ville :")
tab.attach(label5, 16, 30, 41, 49)
label5.show()
champsaisie5 = gtk.Entry()
champsaisie5.set_max_length(50)
tab.attach(champsaisie5, 60, 110, 41, 49)
champsaisie5.show()
label6 = gtk.Label("Mail :")
tab.attach(label6, 16, 30, 51, 59)
label6.show()
champsaisie6 = gtk.Entry()
champsaisie6.set_max_length(50)
tab.attach(champsaisie6, 60, 110, 51, 59)
champsaisie6.show()
bouton1 = gtk.Button(stock=gtk.STOCK_SAVE)
bouton1.connect("clicked", self.enter_callback(fenetre, champsaisie1, champsaisie2, champsaisie3, champsaisie4, champsaisie5, champsaisie6))
tab.attach(bouton1, 30, 50, 62, 68)
bouton1.show()
bouton3 = gtk.Button(stock=gtk.STOCK_CLOSE)
bouton3.connect("clicked", gtk.mainquit, fenetre)
tab.attach(bouton3, 70, 90, 62, 68)
bouton3.show()
fenetre.show()
app.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
SaisieTexte()
main()
Si vous pouvez m'expliquer, ce serait sympa....
Merci
[^] # Re: modification aporter mais erruer venue de nul part...
Posté par jlh . Évalué à 1.
def connect(signal, callback, arg1, arg2, ....)
Essaies :
bouton1.connect("clicked", self.enter_callback, champsaisie1, champsaisie2, champsaisie3, champsaisie4, champsaisie5, champsaisie6)
Tu trouveras la documentation de pyGtk à l'adresse :
http://www.pygtk.org/pygtk2reference/index.html
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.