>>> Let's run Python on Mobile

วันพุธ, กันยายน 28, 2548

การจัดเรียง widget ด้วย .pack()

Python for PocketPC
การจัดเรียง widget ใน root window สามารถทำได้โดยใช้ กลุ่มคำสั่ง ที่เรียกว่า Geometry Manager (ได้แก่ .pack() .grid() และ .place())
Tkinter ใน Python ให้ความสำคัญกับ การทำGeometry Manager ค่อนข้างมาก
โดยแต่ละ widget ต้องเรียกคำสั่ง Geometry Manager ให้เรียบร้อยเสียก่อน จึงจะปรากฏบน screen ให้เห็นได้
คำสั่งหนึ่งใน Geometry Manager ที่ได้มีการใช้ให้เห็น ไปบ้างแล้ว คือคำสั่ง pack()
เช่นถ้าเรามี widget ชื่อ button01 แล้วจะเรียกคำสั่ง pack() ก็ใช้ว่า
button01.pack()
หรือสามารถเรียก คำสั่ง pack() ได้ตั้งแต่ ช่วงสร้าง widget เลยก็ได้ เช่น
button01=Tkinter.Button(text=u'something').pack()
ลองมาดูตัวอย่าง code เต็มๆกัน
import sys
sys.path.append('\\Storage Card\\Python\\Lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
root.title(u'tk05')
button01=Tkinter.Button(text=u'something').pack()
button02=Tkinter.Button(text=u'anything').pack()
button03=Tkinter.Button(text=u'nothing').pack()
button04=Tkinter.Button(text=u'another').pack()
root.mainloop()



ลองเปลี่นขนาด-ตำแหน่ง

(คุณสามารถคลิกที่ Tk root window เพื่อย้ายตำแหน่ง เปลี่ยนขนาดได้ คล้ายๆกับ Windows บน PC)
จะเห็นว่า แต่ละ button ขนาดไม่เท่ากัน เกาะรวมอยู่ด้านบน
คุณสามารถเพิ่ม option ต่างๆ ให้คำสั่ง pack() เช่น
side ทำให้ widget ไปเรียงชิดขอบ
side อาจจะกำหนดให้เท่ากับ 'top' ,'left' ,'right' หรือ 'buttom'
(by default ถ้าไม่กำหนด option side ไว้ จะถือว่า side='top')
ดังตัวอย่าง
import sys
sys.path.append('\\Storage Card\\Python\\Lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
root.title(u'tk06')
button01=Tkinter.Button(text=u'something').pack(side='top')
button02=Tkinter.Button(text=u'anything').pack(side='left')
button03=Tkinter.Button(text=u'nothing').pack(side='right')
button04=Tkinter.Button(text=u'another').pack(side='bottom')
root.mainloop()


ถ้าอยากจะให้ widget แผ่ไปตามแนวซ้าย-ขวา จนเต็ม root window ก็ใช้ option
fill='x'
เช่น
button01=Tkinter.Button(text=u'something').pack(fill='x')
ดังตัวอย่าง
import sys
sys.path.append('\\Storage Card\\Python\\Lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
root.title(u'tk07')
button01=Tkinter.Button(text=u'something').pack(fill='x')
button02=Tkinter.Button(text=u'anything').pack(fill='x')
button03=Tkinter.Button(text=u'nothing').pack(fill='x')
button04=Tkinter.Button(text=u'another').pack(fill='x')
root.mainloop()



ตัวอย่าง code
tk05.zip
tk06.zip
tk07.zip

หน้าถัดไป>>>
กลับไปหน้าหลัก<<<
หน้าก่อน

วันจันทร์, กันยายน 26, 2548

At home ,Let's run IronPython.

Guido van Rossum สร้างภาษา Python ขึ้นมาเมื่อประมาณปี1990
ภาษาPython นั้น เป็น Script Language ที่เรียบง่าย และสวยงาม แต่ก็ทำอะไรดีๆ น่าประทับใจได้หลายๆอย่าง
ประมาณปี1997 Jim Hugunin สร้าง Python อีกสายพันธุ์หนึ่งบน Java
รู้จักกันในนาม Jython (หรือ JPython)
Jython ทำให้สามารถเขียนโปรแกรมJava ได้ง่ายๆ สั้นๆ และสามารถ run ทดสอบcodeได้ใน InterActive Console (ไม่ต้องเสียเวลา compile หลายๆครั้ง)
จะเรียกGUIต่างๆของJava ไม่ว่าจะเป็น AWT ,Swing ก็เรียกขึ้นมาได้ง่ายๆ จาก InterActive Console

เมื่อ10วันก่อน ระหว่างที่ผมกำลังประทับใจ กับความสามารถต่างๆของ Jython
ก็ได้ทราบข่าวจากเพื่อนคนนึงว่า Jim Hugunin ย้ายไปร่วมงานกับ Microsoft ตั้งแต่ปีที่แล้ว
และก็เกิด Python อีกสายพันธุ์ขึ้นมา บน .NET ชื่อว่า IronPython
ผมอาจจะทราบข่าวล้าหลังคนอื่นตั้ง1ปี แต่ก็ทันพอดี IronPython ออก version ใหม่
version 0.9 ,0.91 ,0.92 ออกตามๆกันมา ในเวลาไล่เลี่ยกัน ช่วงกค.-กย.48
IronPython versionนี้ จำเป็นจะต้องrun บน .NET framework 2.0beta ขึ้นไป
ผมเสียเวลาอยู่พักหนึ่ง ถอด .NETframework1.1 ออก
ย้ายVisualStudio.NET2003(ซึ่งจำเป็นต้องย้ายตาม .NETframework1.1) ไปอยู่ harddisk ตัวอื่น
กว่าจะได้ลอง IronPython0.92 ก็เหนื่อย แต่ก็คุ้มที่ได้ลอง
และผมประทับใจกับ IronPython ขึ้นมาทันที

D/L ไฟล์ IronPython-0.9.2.zip ขนาดแค่ประมาณ 1/2MB
มีแนะนำวิธีใช้เพียงแค่ webpage 2หน้า FAQ.html และ Readme.html สั้นๆ
ที่เหลือ ก็ให้เราทดลอง และค้นๆดูวิธีใช้เอาเอง (ท้าทายความสามารถดีแท้ๆ)
เริ่มจากเรียก InterActive Console โดยคลิกที่ไฟล์ IronPythonConsole.exe
จะปรากฏ InterActive Console คล้ายๆCommandPrompt มีเครื่องหมาย >>>
ลองพิมพ์คำสั่ง
import sys
sys.LoadAssemblyByName("System.Windows.Forms")
import System.Windows.Forms.MessageBox
System.Windows.Forms.MessageBox.Show("Hello")


น่าสนใจจริงๆ codeแค่4บรรทัด เรียกใช้คำสั่งใน .NETframework
แสดง MessageBox มีคำว่า Hello ออกมา ง่ายดายอะไรอย่างนี้
ผมลองสร้างเป็น textไฟล์ชื่อ i01.py แล้วลากไปใส่ในไอคอนของ IronPythonConsole.exe
ได้ผลคล้ายๆกัน แต่คราวนี้ได้ไฟล์ i01.exe เพิ่มขึ้นมา
ไฟล์ i01.exe สามารถนำไปsave เก็บไว้ แล้วคลิกที่ไฟล์เพื่อ run โปรแกรมได้เลย
(แต่ต้องrunบน.NET framework 2.0beta ขึ้นไป และมีไฟล์ .dll 2ไฟล์ ของ IronPython อยู่ใกล้ๆ)
ลองเขียนโปรแกรมแบบ Windows Form มีปุ่มกด เรียก MessageBox ดูบ้าง

import sys
sys.LoadAssemblyByName("System.Windows.Forms")
from System.Windows.Forms import *

my_Form = Form(Text="Hello Test")
my_Form.StartPosition = FormStartPosition.CenterScreen
the_Button = Button(Text="Push Me")

def press_here(data, event):
    MessageBox.Show("Hello")

the_Button.Click += press_here

my_Form.Controls.Add(the_Button)
my_Form.ShowDialog()


ได้ผลดังรูปข้างล่าง น่าประทับใจจริงๆ
เขียนโปรแกรมแบบ.NET ไว้ใช้เองได้ง่ายๆ ได้ไฟล์ .exe ซึ่งทำงานได้รวดเร็ว
ได้หัดใช้ คำสั่งต่างๆ ของ Windows Form Programming
แต่คงยังพัฒนาโปรแกรมให้ใครใช้ไม่ได้ครับ
เพราะไม่รู้ว่า มีใครใช้ .NET framework 2.0beta กันบ้างหรือยัง

วันเสาร์, กันยายน 24, 2548

เปลี่ยน Screen body ให้เป็น Listbox

Python on Symbian
ที่ผ่านๆมาเราใช้ Screen body เป็นแบบ Text และมีการใช้ GUI แบบต่างๆ เพิ่มขึ้นมา เพื่อรับ Input จาก user
คราวนี้ จะลองมาเปลี่ยน Screen body ให้เป็นแบบ Listbox ดูบ้าง
เพื่อแสดงแต่ละรายการใน List ในหน้าจอหลักของโปรแกรมเลย และสามารถรับคำสั่ง เมื่อ user กดเลือกแต่ละรายการใน Listbox ได้ด้วย

เริ่มจากสร้าง List เตรียมไว้ และใช้ def กำหนดคำสั่งที่ต้องการ จะให้ทำเมื่อกดเลือกรายการใน Listbox
วิธีใช้
Listbox(Listที่สร้างเตรียมไว้,คำสั่งที่ต้องการ)
เปลี่ยน Screen body ให้เป็น Listbox ได้ดังตัวอย่าง
import appuifw,e32
def my_press():
     appuifw.note(u'You select the month.','info')
def stop_now():
     a.signal()
text_list=[u'January',u'February',u'March',u'April',u'May',u'June',u'July',
u'August',u'September',u'October',u'November',u'December']
appuifw.app.title=u'test24'
My_Screen=appuifw.Listbox(text_list,my_press)
appuifw.app.body=My_Screen
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()



Codeตัวอย่าง
test24.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

วันพุธ, กันยายน 14, 2548

muti_selection_list

Python for Symbian
muti_selection_list ก็เป็นอีก GUI หนึ่ง ในโมดูล appuifw
ลักษณะของ muti_selection_list มีคล้ายๆกันกับ selection_list แตกต่างตรงที่ muti_selection_list นี้ อนุญาตให้ user
เลือกตัวเลือกจาก listได้หลายตัวเลือก
ค่าที่ return กลับมาจะเป็น list ของตัวเลข index บอกว่า user เลือกตัวเลือก ลำดับที่เท่าไรไปบ้าง
วิธีใช้ muti_selection_list
เราก็ต้องสร้าง list (ของตัวอักษรUnicode String) ขึ้นมาก่อน เช่น จากตัวอย่างข้างล่างเป็น list ชื่อ txt
เราสามารถ สร้าง multi_selection_list ขึ้นมาด้วยคำสั่ง
appuifw.multi_selection_list(txt)
ลองมาดูตัวอย่าง code เต็มๆกัน
import appuifw,e32
def multi():
     z=appuifw.multi_selection_list(txt)
     if z is not None:
         for index in z:
             My_Screen.add(txt[index]+'\n'+u'')
def clear_screen():
     My_Screen.clear()
     appuifw.note(u'Clear text on screen','info')
def stop_now():
     a.signal()
txt=[u'January',u'February',u'March',u'April',u'May',u'June',u'July',
u'August',u'September',u'October',u'November',u'December']
appuifw.app.title=u'test22'
My_Screen=appuifw.Text()
appuifw.app.body=My_Screen
My_Screen.set(u'Work on Multiselection List\n')
appuifw.app.menu=[(u'multiselection list',multi),(u'clear screen',clear_screen)]
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()

จากตัวอย่าง txt เป็น list ของ Unicode string (เดือนที้ง12)
ค่าที่ return กลับมา ยังตัวแปล z จะเป็น list ของตัวเลข index
เราใช้ for เรียก ตัวเลข index แต่ละตัวใน z ออกมา
แล้วไปเทียบดู แต่ละค่าใน txt


ตัวอย่าง code
test22.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

วันอังคาร, กันยายน 13, 2548

for-in ใน Python

Python for Symbian
การใช้ for ใน Python จะแตกต่างกับภาษาอื่น
ใน Python เราต้องใช้ for กับตัวแปรที่เป็น Sequence
Sequence คือตัวแปรที่เป็นชุดๆ สามารถไล่ index หาสมาชิกตัวถัดๆ ไปใน Sequence ได้ เช่น x[0] ,x[1] ,x[2]
ตัวอย่างของ Sequence ก็เช่น String ,List เป็นต้น

วิธีใช้ for-in ก็กำหนดประโยคเป็น
for แต่ละสมาชิก in Sequence :
    do something 1
    do something 2
เช่น
import appuifw,e32
def stop_now():
    a.signal()
appuifw.app.title=u'test19'
My_Screen=appuifw.Text()
appuifw.app.body=My_Screen
x=u'March'
for My_char in x :
    My_Screen.add(u'\n')
    My_Screen.add(My_char)
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()

จากตัวอย่างข้างบน
จะเห็นว่า เราสร้าง Unicode String ชื่อ x
ต่อมา
for My_char in x :
จะเห็นว่าประโยค for จบประโยคด้วยเครื่องหมาย :
My_char แทนแต่ละสมาชิกใน x
(คือ จะค่อยๆเปลี่ยนจาก x[0] แล้วเป็น x[1] ไป x[2] ... จนครบหมด)
เมื่อกำหนดค่าแต่ละสมาชิกใน x เสร็จจะไปทำ คำสั่งบรรทัดถัดๆมา
คำสั่งบรรทัดถัดๆมา นี้ต้องเขียนให้มีการย่อหน้า(ก็แล้วแต่สะดวก เช่น ประมาณ 4 space)
คำสั่งบรรทัดต่อไปถ้ายังอยู่ใน loop ของ for ก็ต้องย่อหน้าให้ตรงกันด้วย

ลองดูตัวอย่างของ list ดูบ้าง
import appuifw,e32
def stop_now():
    a.signal()
appuifw.app.title=u'test20'
My_Screen=appuifw.Text()
appuifw.app.body=My_Screen
txt=[u'January',u'February',u'March',u'April',u'May',u'June',u'July',u
'August',u'September',u'October',u'November',u'December']
for My_month in txt :
    My_Screen.add(u' __ ')
    My_Screen.add(My_month)
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()



ตัวอย่าง code
test19.zip
test20.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

วันอาทิตย์, กันยายน 04, 2548

การสร้างปุ่มกด แบบButton

Python for PocketPC
Button เป็นอีกwidgetหนึ่งที่เราคุ้นเคย และใช้กันบ่อยๆ
คำสั่ง Tkinter.Button(text=u'click here') ใช้สำหรับสร้างปุ่มกด ที่มีตัวอักษรว่า click here
option ชื่อ text เป็นการกำหนดตัวอักษร ที่ปรากฎบนปุ่มกด
จากตัวอย่างข้างล่าง เรากำหนดให้ปุ่มกดที่เราสร้างขึ้น มีชื่อว่า the_button
import sys
sys.path.append('\\Storage Card\\Python\\Lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
root.title(u'hello')
my_label=Tkinter.Label(text=u'hello test').pack()
the_button=Tkinter.Button(text=u'click here').pack()
root.mainloop()


แต่ละwidget จะมีคำสั่งมากมายเป็นของตัวเอง ให้เราเรียกใช้
เช่น คำสั่ง .pack() เป็นการกำหนดตำแหน่ง ของwidget ใน root window และทำให้ widget ปรากฎขึ้นมา
เราสามารถ แยกมาอีกบรรทัด เพื่อเรียกใช้คำสั่ง .pack() ก็ได้ เช่น
my_label.pack()
the_button.pack()

จากตัวอย่างข้างบนเมื่อกดปุ่ม จะยังไม่มีอะไรเกิดขึ้น
เราสามารถเชื่อมโยงปุ่มกดเข้ากับ คำสั่งต่างๆโดยใช้ option ชื่อ command
ดังตัวอย่างถัดไป เป็นการเชื่อมโยงปุ่มกด เข้ากับคำสั่ง
sys.exit() ซึ่งเป็นการปิดโปรแกรม (ปิด root window + ปิด Python)
จะเห็นว่า คำสั่ง sys.exit() มีวงเล็บ แต่เมื่อไปอยู่หลัง command จะไม่มีวงเล็บ
(นั่นหมายความว่าถ้าคำสั่งใดมี argument คงไม่สามารถ เชื่อมกับ option ชื่อ commandได้โดยตรง)
import sys
sys.path.append('\\Storage Card\\Python\\Lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
root.title(u'hello')
my_label=Tkinter.Label(text=u'hello test')
the_button=Tkinter.Button(text=u'Exit',command=sys.exit)
my_label.pack()
the_button.pack()
root.mainloop()


ตัวอย่าง code
tk03.zip
tk04.zip

หน้าถัดไป>>>
หน้าก่อน
หน้าหลัก

วิธีเปลี่ยน Title ให้ Windows ใน Tkinter

Python for PocketPC
tk root window ที่เราสร้างขึ้นในตัวอย่างที่ผ่านมา มีTitle เป็นตัวอักษร tk
เราสามารถกำหนดตัวอักษรTitle ได้โดยใช้คำสั่ง title(u'string')
เช่น
import sys
sys.path.append('\\Storage Card\\python\\lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
root.title(u'hello')
my_label=Tkinter.Label(text=u'hello test')
my_label.pack()
root.mainloop()


จากตัวอย่าง ในบรรทัด
root.title(u'hello')
จะกำหนดให้ Title เป็น StringแบบUnicode เขียนว่า hello
ส่วนบรรทัด
my_label=Tkinter.Label(text=u'hello test')
ก็เป็นการสร้าง Label ใน root windows ขึ้นมา1อัน มีตัวอักษรเขียนว่า hello test

code ตัวอย่าง
tk02.zip

หน้าถัดไป >>>
หน้าก่อน
กลับไปหน้าหลัก

เริ่มเขียนโปรแกรมด้วย Python for PocketPC

Python for PocketPC
ภาษาpython นั้นเรียบง่ายจนคุณสามารถเขียนโปรแกรม Hello แบบ GUI ได้โดยใช้Codeเพียงไม่กี่บรรทัด
ลองมาดูตัวอย่างcodeกัน
import sys
sys.path.append('\\Storage Card\\Python\\Lib\\python23.zip\\lib-tk')
import Tkinter
root=Tkinter.Tk()
my_label=Tkinter.Label(text=u'hello from python')
my_label.pack()
root.mainloop()

ลองสร้าง text file ที่มีเนื้อหาดัง codeข้างบน แล้ว saveเป็น tk01.py
Codeสามบรรทัดแรกเพื่อ Load Module ชื่อ Tkinter
โมดูล Tkinter นี้ใช้สร้างGUI(Graphic User Interface) ต่างๆ ใน Python บน PocketPC
ชิ้นส่วนต่างๆ ที่มาประกอบกันเป็น GUI ใน Python เราเรียกว่า widget
การเริ่มเปิดใช้ Tkinter ทำได้โดยสร้าง root widget ด้วยคำสั่ง
root=Tkinter.Tk()

ต่อมาเราเพิ่มตัวอักษรลงไป โดยสร้างwidgetอีกชนิดหนึ่งขึ้นมา เรียกว่า Label
เราสร้างLabel ชื่อ my_label ขึ้นมาด้วยคำสั่ง
my_label=Tkinter.Label(text=u'hello from python')
ตัวอักษรที่อยู่ในวงเล็บ เรียกว่า option
ในที่นี้เรากำหนด option ให้ my_label เพียงoptionเดียว
เราใช้optionชื่อ text เพื่อกำหนดตัวอักษร ที่แสดงบน Label
u'hello from python' เป็น string แบบ Unicode (นำหน้าด้วย u)
ตัวอักษร ที่แสดงบนPocketPC พยายามให้เป็น Unicodeไว้เสมอ

แต่ละwidget จะมี method ของตนเองซึ่งสามารถเรียกใช้ได้
คำสั่งpack() จะทำให้ widget ปรากฏขึ้นมาบนWindows
และปรับขนาดของ Windows ให้พอดีกับwidget

คำสั่ง root.mainloop()
เป็นการ เปิดWindows ของTkinter ค้างไว้เพื่อรอรับคำสั่งต่างๆ
คุณสามารถปิด โปรแกรมได้โดย คลิกที่ X มุมขวาบน

หมายเหตุ:-ไฟล์ .py ต้องใช้ encoding เป็น ANSI
และถ้าset Registry ได้ถูกต้องคุณสามารถ run ไฟล์นี้จากโฟลเดอร์ใดก็ได้ ใน PocketPC

ตัวอย่างcode
tk01.zip

หน้าถัดไป >>>
หน้าก่อน
กลับไปหน้าหลัก

การติดตั้งPython for PocketPC

Python for PocketPC
วิธีติดตั้ง Python บน PocketPC เริ่มจากไป D/L Python for PocketPC จาก
http://fore.validus.com/~kashtan
ซึ่งมีให้เลือกทั้งแบบ Windows for PocketPC2002 และ 2003
(ไฟล์ Python-2.3.4-arm-PPC2002.zip หรือ Python-2.3.4-arm-PPC2003.zip)
และ Tkinter-Files.zip

Python-2.3.4-arm-PPC2003.zip

ให้คุณUnzipไฟล์ Python-2.3.4-arm-PPC2002.zip หรือ Python-2.3.4-arm-PPC2003.zip
ซึ่งไฟล์ที่ได้นี้ เขาเตรียมไว้สำหรับติดตั้งลงโฟลเดอร์ \Program Files\Python\Lib
(ถ้าจะลงที่ main memory ลงไฟล์เสร็จ ก็คลิกที่shortcutชื่อ SetupRegistry)

แต่ผมรู้สึกว่าจะประหยัดmemoryมากกว่า ถ้านำไปลงใน StorageCard
ใครจะ ลงPythonใน StorageCard ทำตามนี้ครับ
-ให้สร้างโฟลเดอร์ \Storage Card\Python\Lib
-แล้วนำไฟล์ทั้งหมดที่เพิ่งUnzip(as above) ลงในโฟลเดอร์นี้
-ต่อมา D/L toSD.zip
-unZip ไฟล์ toSD.zip(จะได้เป็น2ไฟล์)
แล้วนำไปไว้รวมกับไฟล์อื่นๆใน โฟลเดอร์ \Storage Card\Python\Lib\
-ในPocketPC ที่โฟลเดอร์ \Storage Card\Python\Lib คลิกที่ไฟล์ toSD_click
(หรือใครset RegistryในPocketPC เป็น สนใจจะทำเองก็ลองทำตาม Linkนี้ ดูครับ)
-ลองทดสอบดูว่า work ดีมั้ย คลิกที่ python.exe ก็จะมี InterActive Console ขึ้นมา >>> พร้อมรับคำสั่ง
-ต่อมาก็ลง Tkinter
-UnZipไฟล์ Tkinter-Files.zip จะได้เป็น2โฟลเดอร์ (tcl8.4.3 , Windows)
-นำทั้งโฟลเดอร์ tcl8.4.3(ที่UnZipได้มา) ไปไว้ที่ \ (โฟลเดอร์สูงสุดของ PocketPC)
-นำ3ไฟล์ในโฟลเดอร์Windows(ที่UnZipได้มา) ไปไว้ใน \Windows(ในPocketPC)

Tkinter-Files.zip

เท่านี้ก็เรียบร้อย สามารถrun ไฟล์ .py โดยคลิกกดที่ไฟล์ได้เลย
โดยจะนำไฟล์ .py ใหม่ที่ได้มาหรือเขียนขึ้นมาใหม่ไปไว้ที่Folderใด(ในPocketPC) ก็ได้


หมายเหตุ : ตัวอย่างที่จะแสดงในหน้าถัดไป สามารถใช้กับ Python ที่ลงใน Storage Card หรือ PC
ถ้าใครลง Python ใน Main memory ของ PocketPC จำเป็นต้องปรับเปลี่ยน code เล็กน้อย

หน้าถัดไป >>>
หน้าก่อน
กลับไปหน้าหลัก

set RegistryในPocketPC เพื่อ run Python

Python for PocketPC
-ให้คุณUnzipไฟล์ Python-2.3.4-arm-PPC2002.zip หรือ Python-2.3.4-arm-PPC2003.zip
(ที่ D/L จาก http://fore.validus.com/~kashtan)
-สร้างโฟลเดอร์ \Storage Card\Python\Lib\ แล้วนำไฟล์ทั้งหมดที่เพิ่งUnzip(as above) ลงในโฟลเดอร์นี้
-set RegistryในPocketPC

ใน HKEY_CLASSES_ROOT
keyชื่อ .py มีvalueเป็น "Python.File" (แบบREG_SZ)

ใน HKEY_CLASSES_ROOT (อีกkey)
keyชื่อ .pyc มีvalueเป็น "Python.File" (แบบREG_SZ)

ใน HKEY_CLASSES_ROOT\Python.File\Shell\Open\Command
keyชื่อ Default มีvalueเป็น "\Storage Card\Python\Lib\python.exe" "%1" (แบบREG_SZ)

Introduction to Python for PocketPC

Python for PocketPC
ถ้าจะเขียนโปรแกรมไว้ใช้บนPocketPC ก็คงจะมีหลายๆภาษาที่ดีๆ และมีประสิทธิภาพให้เลือกใช้
แต่ถ้าคิดจะใช้คำสั่งเพียงไม่กี่บรรทัด แล้วได้โปรแกรม แบบGUI สามารถเปิดอ่าน-เขียนไฟล์ลงStorageCard หรือสามารถเขียนโปรแกรมง่ายๆที่runได้ทั้งบน Pocketpc Windows(PC) และLinux แล้วล่ะก็
Pythonก็เป็นอีกหนึ่งตัวเลือกที่น่าสนใจทีเดียว

Python on PocketPC

โปรแกรม .py เป็น text-files ธรรมดาที่สามารถเปิดอ่านและเขียนได้ด้วย Notepad
ไฟล์ .py นี้ เป็นScript ที่ runบน Python Interpreter ซึ่งปัจจุบันมีให้D/L มาใช้ได้ แทบจะทุกplatform ไม่ว่าจะเป็น Linux Windows(PC) PocketPC หรือแม้แต่ Symbian

Script Python on PC

GUI ทีใช้บน Python for PocketPC ใช้โมดูล Tkinter ซึ่งใช้งานคล้ายๆกันทั้งบน PC Linux และ Python for PocketPC
มีMenu ,Button ,Label ,Listbox มีแม้กระทั่ง Canvas ให้ทำงาน หรือ Load Image แบบ Graphic
Python ยังมี InterActive Console ที่ดูคล้าย Command Prompt สามารถ runคำสั่งสั้นๆ และใช้เป็นเครื่องคิดเลขได้อีกด้วย

Python Active Console
ไว้เขียนโปรแกรมสั้นๆ
หรือสามารถใช้แทนเครื่องคิดเลข


หน้าถัดไป
กลับไปหน้าหลัก

วันเสาร์, กันยายน 03, 2548

Python on PocketPC

Python for PocketPC
>>> Introduction to Python for PocketPC
>>> การติดตั้งPython for PocketPC
>>> เริ่มเขียนโปรแกรมด้วย Python for PocketPC
>>> วิธีเปลี่ยน Title ให้ Windows ใน Tkinter
>>> การสร้างปุ่มกด แบบButton
>>> การจัดเรียง widget ด้วย .pack()
>>> การจัดเรียง widget ด้วย grid

>>> Python Links