Witam
Mam do napisania program ktory przeprowadza ankiete w wxPython..
Zaczalem pisac i nawet cos tam dziala ale mam kilka problemow i chcialbym si poradzic..
Oto kod:
#-*- coding: utf-8 -*-
import wx
plik = open('plik.txt', 'w')
class Dane(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
wx.StaticText(self, -1, "Imie ", (20,30))
self.imie = wx.TextCtrl(self, -1,'',(150,27))
wx.StaticText(self, -1, "Nazwisko ", (20,53))
self.nazwisko = wx.TextCtrl(self, -1,'',(150,50))
wx.StaticText(self, -1, 'Wiek',(20,76))
self.wiek = wx.SpinCtrl(self, -1, '20', (150, 73), (60, -1), min=1, max=120)
wx.StaticText(self, -1, 'Miasto',(20,99))
self.miasto = wx.TextCtrl(self, -1,'',(150,96))
wx.StaticText(self, -1,'Wojewodztwo',(20,122))
wojewodztwa = ['dolnoslaskie','kujawsko-pomorskie','lubelskie','lubuskie',
'lodzkie','malopolskie','mazowieckie','opolskie','podkarpackie',
'podlaskie','pomorskie','slaskie','swietokrzyskie',
'warminsko-mazurskie', 'wielkopolskie','zachodniopomorskie']
self.wojew = wx.ComboBox(self,-1, pos=(150,119), choices=wojewodztwa, style=wx.CB_READONLY)
wx.StaticText(self, -1,'Plec',(20,145))
self.plec1 = wx.RadioButton(self, -1, 'Mezczyzna', (150, 142))
self.plec2 = wx.RadioButton(self, -1, 'Kobieta', (220, 142))
self.btn = wx.Button(self,label='Zapisz',pos=(190,200))
self.Bind(wx.EVT_BUTTON, self.Save, self.btn)
def Save(self, e):
plik.write('Imie: '+str(self.imie.GetValue())+'\n')
plik.write('Nazwisko: '+str(self.nazwisko.GetValue())+'\n')
plik.write('Wiek: '+str(self.wiek.GetValue())+'\n')
plik.write('Wojewodztwo: '+str(self.wojew.GetValue())+'\n')
if((str(self.plec1.GetValue()))=='True'):
plik.write('Plec: Mezczyzna\n')
else:
plik.write('Plec: Kobieta\n')
class Zainteresowania(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
wx.StaticText(self, -1, "Jak spedzasz wolny czas?", (10,10))
self.zaint1 = wx.CheckBox(self, label='Czytanie ksiazki', pos=(20,30))
self.zaint2 = wx.CheckBox(self, label='Sluchanie muzyki', pos=(20, 50))
self.zaint3 = wx.CheckBox(self, label='Spotkanie ze znajomymi', pos=(20, 70))
self.zaint4 = wx.CheckBox(self, label='Granie w gry', pos=(20, 90))
self.zaint5 = wx.CheckBox(self, label='Uprawianie sportu', pos=(180, 30))
self.zaint6 = wx.CheckBox(self, label='Surfowanie po internecie', pos=(180, 50))
self.zaint7 = wx.CheckBox(self, label='Ogladanie TV', pos=(180, 70))
self.zaint8 = wx.CheckBox(self, label='Nauka', pos=(180, 90))
self.btn = wx.Button(self,label='Zapisz',pos=(190,390))
self.Bind(wx.EVT_BUTTON, self.Save, self.btn)
def Save(self, e):
plik.write('\n\nJak spedzasz wolny czas?:\n')
if((str(self.zaint1.GetValue()))=='True'):
plik.write('Czytanie ksiazki, ')
if((str(self.zaint2.GetValue()))=='True'):
plik.write('Sluchanie muzyki, ')
if((str(self.zaint3.GetValue()))=='True'):
plik.write('Spotkanie ze znajomymi, ')
if((str(self.zaint4.GetValue()))=='True'):
plik.write('Granie w gry, ')
if((str(self.zaint5.GetValue()))=='True'):
plik.write('Uprawianie sportu, ')
if((str(self.zaint6.GetValue()))=='True'):
plik.write('Surfowanie po internecie, ')
if((str(self.zaint7.GetValue()))=='True'):
plik.write('Ogladanie TV, ')
if((str(self.zaint8.GetValue()))=='True'):
plik.write('Nauka, ')
class Podsumowanie(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.text1 = wx.StaticText(self, label='Aby zapisac kliknij OK',pos=(175,10))
self.text = wx.StaticText(self, label='',pos=(200,130))
self.btn = wx.Button(self,label='OK',pos=(190,150))
self.Bind(wx.EVT_BUTTON, self.Save, self.btn)
self.Show(True)
def Save(self, e):
plik.close()
self.text.SetLabel('Zapisano')
class Program(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None,size=(500,500))
# Tutaj tworzymy panel i notatnik na panelu
p = wx.Panel(self)
nb = wx.Notebook(p)
self.SetTitle('Ankieta')
self.Centre()
# Tworzymy zakładki
zakladka1 = Dane(nb)
zakladka2 = Zainteresowania(nb)
zakladka3 = Podsumowanie(nb)
# dodajemy zakladki do notatnika wraz z nazwą
nb.AddPage(zakladka1, "Dane")
nb.AddPage(zakladka2, "Zainteresowania")
nb.AddPage(zakladka3, "Podsumowanie")
# opisanie ułożenia zakładek
uklad = wx.BoxSizer()
uklad.Add(nb, 1, wx.EXPAND)
p.SetSizer(uklad)
if __name__ == "__main__":
app = wx.App()
Program().Show()
app.MainLoop()
jak na razie to co napisalem dziala ale na kazdej zakladce musze klikac OK zeby zapisalo z niej wpisane dane a chcialbym zeby przycisk OK na ostatniej zakladce zapisywal wszystko...
albo chociaz zeby po nacisnieciu ok na zakladce pierwszej zapisywalo i przenosilo do drugiej, z drugiej do trzeciej..
z gory dziekuje za pomoc