My first frame in Python

งงกับ Python อยู่หลายวันพยายามจะเขียนอะไรเล่นในรูปแบบของ GUI ก็ลองหาวิธํีสร้าง Frame หรือสร้าง Window ในภาษา Python ว่ามันทำยังไงหว่า

พยายามอ่านข้อมูลจากทาง Internet เพราะว่าตอนนี้ยังไม่ได้ซื่อหนังสือ Python มาอ่านเลยซักเล่มหาในห้องสมุดก็ไม่มีเลย ก็เลยพยายามเริ่มต้นศึกษาด้วยตัวเองไปเรื่อยก่อน รอเก็บตังซื้อหนังสือก่อน

อ่านไปอ่านมา ก็มาถึงบางอ้อว่า เจ้าตัวภาษา Python นี่่ด้วยตัวของมันเองมันไม่สามารถที่จะสร้างหน้าจอแบบ GUI ได้ไม่เหมือนกับภาษา Java ซึ่งมีพวก API มาให้พร้อมเลยกับตัวภาษา

แต่สำหรับเจ้าตัวภาษา Python นั้นมันจะต้องพึ่งพา Framework จากข้างนอกมาช่วย สำหรับ Framework ที่ช่วยสร้างโปรแกรมแบบ GUI นั้นก็มีหลายตัวสำหรับ Python แต่ตอนนี้ติดสินใจเลือก wxPython

ที่ตัดสินใจเลือก wxPython เพราะเหตุผลง่ายๆ เลยคือใน Mac OS X 10.4.8 ถ้าลง Developer tool และมันก็จะติดตั้ง wxPhython มาให้เลย และที่สำคัญอีกประการหนึ่งคือ มันรองรับได้ Mutiplatform

ความจริงก็ยังไม่ค่อยเข้าในเรื่องการสร้าง GUI ของ Python มากนักยังหาเอกสารที่พอจะยึดไว้อ้างอิงไม่ค่อยได้เลย ก็เลย copy source code ชาวบ้านมาแก้ไล่ๆ แล้วลองแก้ดูให้พออ่านเองเข้าใจได้ ตั้งใจว่าจะใช้เป็น Prototype เผื่อว่าต้องการจะสร้าง Frame อะไรก็จะได้เอามาใช้ได้เลย

from wxPython.wx import *
#@Define Menu ID
ID_ABOUT = 101
ID_EXIT  = 102
#@Define Frame Size
Frame_Width = 480
Frame_Height = 300
#@--------------------------------------------------------------------------

class MyFrame(wxFrame):
    def __init__(self, parent, ID, title):
        wxFrame.__init__(self, parent, ID, title,
                         wxDefaultPosition, wxSize(Frame_Height, Frame_Width))
        self.CreateStatusBar()
        self.SetStatusText("This is the statusbar")
#@--------------------------------------------------------------------------
class MyApp(wxApp):
    def OnInit(self):
        frame = MyFrame(NULL, -1, "Untitled")
        frame.Center()
        frame.Show(true)
        self.SetTopWindow(frame)
        return true
#@--------------------------------------------------------------------------
app = MyApp(0)
app.MainLoop()

Reply

Please solve the math problem above and type in the result. e.g. for 1+1, type 2.