>>> Let's run Python on Mobile

วันศุกร์, สิงหาคม 12, 2548

Input ด้วย query

ในโมดูล appuifw ยังมีอีกหลายmethod ที่น่าสนใจ เช่น
appuifw.query(u'label',type)
เป็นการเรียกช่องกรอกตัวอักษร(textbox) ขึ้นมา กำกับด้วย label ให้ผู้ใช้กรอกตัวอักษร และจะ return ค่า กลับมาเป็น string ,int หรืออื่นๆ แล้วแต่ เราจะกำหนดไว้ใน type
type จะเป็น แบบใดแบบหนึ่ง ใน6อย่าง คือ 'text','code','number','date','time'หรือ'query'
ลองมาดูตัวอย่างcodeกัน
import appuifw ,e32
def the_end():
     a.signal()
appuifw.app.title=u'test09'
my_screen=appuifw.Text()
appuifw.app.body=my_screen
my_screen.add(u'Test input by query\n')
my_input=appuifw.query(u'Some text','text')
if my_input is not None:
     my_screen.add(my_input+'\n')
appuifw.app.exit_key_handler=the_end
a=e32.Ao_lock()
a.wait()



โปรแกรมนี้ใช้ type เป็นแบบ 'text' ให้ผู้ใช้กรอกตัวอักษร แล้วกด ok
อักษรที่ผู้ใช้กรอกจึงไปปรากฎบน screen
แต่ถ้าผู้ใช้กดเป็น cancel จะ return กลับมาเป็น None ก็จะไม่มีอะไรเกิดขึ้น
มีการใช้คำสั่ง if ตามด้วยcondition แล้วต่อด้วย :
ถ้า conditionเป็นจริง ก็จะทำตาม blockคำสั่งที่ตามมา
blockคำสั่งถัดๆไปที่ตาม if มาต้องมีการขึ้นบรรทัดใหม่และย่อหน้า
ลองมาดูตัวอย่างแบบตัวเลขกันบ้าง
import appuifw ,e32
def the_end():
     a.signal()
appuifw.app.title=u'test10'
my_screen=appuifw.Text()
appuifw.app.body=my_screen
my_screen.add(u'Test input by query\n')
my_input=appuifw.query(u'Some number','number')
if my_input is not None:
     my_screen.add(str(my_input)+'\n'+u"")
appuifw.app.exit_key_handler=the_end
a=e32.Ao_lock()
a.wait()



ถ้าเป็นแบบตัวเลข จะreturnกลับมาเป็น เลขจำนวนเต็ม
เราจะต้องแปลงเป็น Unicode string เสียก่อน โดยใช้คำสั่ง str() แล้วบวกด้วย Unicode string อะไรก็ได้


Codeตัวอย่าง
test09.zip
test10.zip

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

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit
>>>And More...