Sunday, April 22, 2012

Lesson 14_Python

 കാല്‍ക്കുലേറ്റര്‍ നിര്‍മ്മാണം Python / wxGlade ഉപയോഗിച്ച്

 

1.  Applications → Programming → wxGlade Add a Frame
2.  Add a GridSizer (കഴിഞ്ഞ അധ്യായത്തില്‍ വിശദീകരിച്ചിട്ടുണ്ട്.) 
3.  ആവശ്യമായ ടോക്‌സ്റ്റ് ബോക്‌സുകളും ബട്ടണുകളും ഉള്‍പ്പെടുത്തുക.
    ( ഒരു ടക്‌സ്‌റ്റ് ബോക്‌സും 18 ബട്ടണുകളുമാണ്  ഉള്‍പ്പെടുത്തിയിരിക്കുന്നത്.)
4.  ടെക്‌സ്റ്റ് ബോക്‌സ് സെലക്‌ട് ചെയ്‌ത് Properties ജാലകത്തിലെ Common ടാബിലെtext_ctrl_1 എന്നതിനു പകരം മറ്റൊരു പേര്  x  എന്നു നല്‍കാം
5.  ഓരോ ബട്ടണും സെലക്‌ട് ചെയ്ത് Properties ജാലകത്തിലെ Widget ടാബിലെ Button_1, Button_2,..... തുടങ്ങിയവയ്ക്കു പകരം 1,2,........Add(+),Sub(-),....മുതയായവ നല്കുക. തുടര്‍ന്ന് Events ടാബ് സെലക്‌ട് ചെയ്‌ത് Handler എന്ന ഭാഗത്ത് ബട്ടണില്‍ ക്ലിക്കു ചെയ്യുമ്പോള്‍ പ്രവര്‍ത്തിക്കേണ്ട ഫങ്‌ഷന്റെ പേര് ചേര്‍ക്കണം.( click 1, click 2,.....,click9,click0,sum, minus, div.....എന്നിങ്ങനെയാണ് ഇവിടെ കൊടുത്തിരിക്കുന്നത്.)
6.  പൈത്തണ്‍ കോഡ് നിര്‍മ്മാണം :
wxGlade ജാലകത്തിലെ Applications ക്ലിക്കു ചെയ്യുക. അതിനു ശേഷം Properties ജാലകത്തില്‍ Language എന്നതില്‍ python സെലക്‌ട് ചെയ്‌ത് Output path ഓപ്‌ഷനു നേരെയുള്ള ബട്ടണില്‍ ക്ലിക്കു ചെയ‌ത് ആവശ്യമായ ഫോള്‍ഡര്‍ തെരഞ്ഞെടുത്ത് ഫയല്‍ നാമം നല്‍കി (calculator.py) Save വട്ടണില്‍ ക്ലിക്കു ചെയ്യുക. .py എന്ന എക്‌സ്‌റ്റന്‍ഷന്‍ നിര്‍ബന്ധമായും നല്‍കണം. തുടര്‍ന്ന് Generate Code ബട്ടണില്‍ ക്ലിക്കു ചെയ്യുക. Code generation completed successfully എന്ന ഒരു Information കാണാം. OK ബട്ടണില്‍ ക്ലിക്കു ചെയ്യുക. .wxg എന്ന എക്‌സ്‌റ്റന്‍ഷനോടുകൂടി ഈ പ്രോജക്ട് സേവ് ചെയ്യാം. (File--> Save) സേവ് ചെയ്‌തിരിക്കുന്ന പൈത്തണ്‍ ഫയല്‍ (calculator.py) gedit text editor ല്‍ തുറന്ന് താഴെ കൊടുത്തിരിക്കുന്ന മാറ്റങ്ങള്‍ വരുത്തുക.

click 1 ഫങ്‌ഷന്റെ കോഡു വരുന്ന ഭാഗത്ത് print "Event handler `click1' not implemented!" എന്നതിനു പകരം 
 
v = '1'
t = self.x.GetValue()
t = t + v
self.x.SetValue(t)
എന്നാണ് gedit text editor ല്‍ മാറ്റേണ്ടത്. ഇതുപോലെ മറ്റ് ബട്ടണുകളുമായി ബന്ധപ്പെട്ട (Numbers) അനുബന്ധ ടെക്‌സ്റ്റുകളും മാറ്റേണ്ടതാണ്. (v = '1' എന്നതിനു പകരം v = '2' എന്ന മാറ്റം മാത്രം വരുത്തിയാല്‍ മതിയാകും click 2 ഫങ്‌ഷന്റെ കോഡു വരുന്നതില്‍). ഇവിടെ x എന്നത്  ടെക്‌സ്റ്റ് ബോക്‌സിന്റെ പേരാണ്. v,t എന്നിവയ്ക്കു പകരം ഏതു പേരും നല്കാം.(v = '1' എന്നതിനു പകരം v = '+' എന്ന മാറ്റം മാത്രം വരുത്തിയാല്‍ മതിയാകും sum ഫങ്‌ഷന്റെ കോഡു വരുന്നതില്‍)

equals ഫങ്‌ഷന്റെ കോഡു വരുന്ന ഭാഗത്ത് print "Event handler `equals' not implemented!" എന്നതിനു പകരം താഴെ കൊടുത്തിരിക്കുന്ന രീതിയില്‍ മാറ്റം വരുത്തുക.
clear ഫങ്‌ഷന്റെ കോഡു വരുന്ന ഭാഗത്ത് print "Event handler `clear' not implemented!" എന്നതിനു പകരം താഴെ കൊടുത്തിരിക്കുന്ന രീതിയിലും മാറ്റം വരുത്തുക.


ഫയല്‍ സേവ് ചെയ്‌തതിനുശേഷം പ്രോഗ്രാം പ്രവര്‍ത്തിപ്പിച്ചു നോക്കൂ.

മറ്റൊരു വിധത്തില്‍


  1. Applications → Programming → wxGlade
  2. Add a Frame
  3. Add a GridSizer (കഴിഞ്ഞ അധ്യായത്തില്‍ വിശദീകരിച്ചിട്ടുണ്ട്.)
  4. ആവശ്യമായ ടോക്‌സ്റ്റ് ബോക്‌സുകളും ബട്ടണുകളും ഉള്‍പ്പെടുത്തുക.
  5. ഓരോ ടെക്‌സ്റ്റ് ബോക്‌സും സെലക്‌ട് ചെയ്‌ത് Properties ജാലകത്തിലെ Common ടാബിലെ text_ctrl_1, text_ctrl_2,text_ctrl_3 ,text_ctrl_4 എന്നിവയ്ക്കു പകരം മറ്റു പേരുകള്‍ x,y,z,a വേണമെങ്കില്‍ നല്‍കാം.
  6. ഓരോ ബട്ടണും സെലക്‌ട് ചെയ്ത് Properties ജാലകത്തിലെ Widget ടാബിലെ Button_1, Button_2,..... തുടങ്ങിയവയ്ക്കു പകരം 1,2,........+,-,/,....മുതയായവ നല്കുക. തുടര്‍ന്ന് Events ടാബ് സെലക്‌ട് ചെയ്‌ത് Handler എന്ന ഭാഗത്ത് ബട്ടണില്‍ ക്ലിക്കു ചെയ്യുമ്പോള്‍ പ്രവര്‍ത്തിക്കേണ്ട ഫങ്‌ഷന്റെ പേര് ചേര്‍ക്കണം.( click 1, click 2,.....,click9,click0,sum, minus, div.....എന്നിങ്ങനെയാണ് ഇവിടെ കൊടുത്തിരിക്കുന്നത്.)
  7. പൈത്തണ്‍ കോഡ് നിര്‍മ്മാണം :
    wxGlade
    ജാലകത്തിലെ Applications ക്ലിക്കു ചെയ്യുക. അതിനു ശേഷം Properties ജാലകത്തില്‍ Language എന്നതില്‍ python സെലക്‌ട് ചെയ്‌ത് Output path ഓപ്‌ഷനു നേരെയുള്ള ബട്ടണില്‍ ക്ലിക്കു ചെയ‌ത് ആവശ്യമായ ഫോള്‍ഡര്‍ തെരഞ്ഞെടുത്ത് ഫയല്‍ നാമം നല്‍കി (calculator.py) Save വട്ടണില്‍ ക്ലിക്കു ചെയ്യുക. .py എന്ന എക്‌സ്‌റ്റന്‍ഷന്‍ നിര്‍ബന്ധമായും നല്‍കണം. തുടര്‍ന്ന് Generate Code ബട്ടണില്‍ ക്ലിക്കു ചെയ്യുക. Code generation completed successfully എന്ന ഒരു Information കാണാം. OK ബട്ടണില്‍ ക്ലിക്കു ചെയ്യുക. .wxg എന്ന എക്‌സ്‌റ്റന്‍ഷനോടുകൂടി ഈ പ്രോജക്ട് സേവ് ചെയ്യാം. (File--> Save)
    6.
    സേവ് ചെയ്‌തിരിക്കുന്ന പൈത്തണ്‍ ഫയല്‍ (calculator.py) gedit text editor ല്‍ തുറന്ന് താഴെ കൊടുത്തിരിക്കുന്ന മാറ്റങ്ങള്‍ വരുത്തുക. 
    click 1 ഫങ്‌ഷന്റെ കോ‍ഡു വരുന്ന ഭാഗത്ത് print "Event handler `click1' not implemented!" എന്നതിനു പകരം
v = '1'
t = self.x.GetValue()
t = t + v
self.x.SetValue(t)
എന്നാണ് gedit text editor ല്‍ മാറ്റേണ്ടത്. ഇതുപോലെ മറ്റ് ബട്ടണുകളിലെ (Numbers) അനുബന്ധ ടെക്‌സ്റ്റുകളും മാറ്റേണ്ടതാണ്. (v = '1' എന്നതിനു പകരം v = '2' എന്ന മാറ്റം മാത്രം വരുത്തിയാല്‍ മതിയാകും click 2 ഫങ്‌ഷന്റെ കോ‍ഡു വരുന്നതില്‍). ഇവിടെ x എന്നത് മൂന്നാമത്തെ ടെക്‌സ്റ്റ് ബോക്‌സിന്റെ പേരാണ്. v,t എന്നിവയ്ക്കു പകരം ഏതു പേരും നല്കാം.
plus ഫങ്‌ഷന്റെ കോ‍ഡു വരുന്ന ഭാഗത്ത് print "Event handler `plus' not implemented!" എന്നതിനു പകരം
c = float(self.x.GetValue())
self.z.SetValue(str(c))
self.y.SetValue('+')
self.x.SetValue('')
ഇവിടെ x എന്നത് മൂന്നാമത്തെ ടെക്‌സ്റ്റ് ബോക്‌സിന്റെ പേരും, y എന്നത് രണ്ടാമത്തെ ടെക്‌സ്റ്റ് ബോക്‌സിന്റെ പേരും, z എന്നത് ഒന്നാമത്തെ ടെക്‌സ്റ്റ് ബോക്‌സിന്റെ പേരുമാണ്. ഇതുപോലെ മറ്റ് ബട്ടണുകളിലെ (minus, multi, div) അനുബന്ധ ടെക്‌സ്റ്റുകളും മാറ്റേണ്ടതാണ്. മൂന്നാമത്തെ വരിയിലെ '+' എന്നതിനു പകരം ആവശ്യമായ മാറ്റങ്ങള്‍ മാത്രം വരുത്തിയാല്‍ മതി.
equals ഫങ്‌ഷന്റെ കോഡു വരുന്ന ഭാഗത്ത് print "Event handler `equals' not implemented!" എന്നതിനു പകരം
c = float(self.x.GetValue())
d = float(self.z.GetValue())
e = self.y.GetValue()
if(e == '+' ):
ans=c+d
elif(e == 'x' ):
ans=c*d
elif(e == '-' ):
ans=d-c
else:
ans=d/c
self.a.SetValue(str(ans))
എന്നാണ് gedit text editor ല്‍ മാറ്റേണ്ടത്. ഇവിടെ a എന്നത് നാലാമത്തെ ടോക്‌സ്റ്റ് ബോക്‌സിന്റെ പേരാണ്. c, d, e, ans തുടങ്ങിയവയ്ക്കു പകരം ഏതു പേരും നല്കാം.
clear ഫങ്‌ഷന്റെ കോഡു വരുന്ന ഭാഗത്ത് print "Event handler `clear' not implemented!" എന്നതിനു പകരം
self.x.SetValue(' ')
self.y.SetValue(' ')
self.z.SetValue(' ')
self.a.SetValue(' ')
എന്നാണ് gedit text editor ല്‍ മാറ്റേണ്ടത്. ഇത്രയും മാറ്റങ്ങള്‍ വരുത്തി ഫയല്‍ സേവ് ചെയ്‌തതിനുശേഷം പ്രോഗ്രാം പ്രവര്‍ത്തിപ്പിച്ചു നോക്കൂ.
Click here

Code 

No comments:

Post a Comment