рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рдкрд░рд┐рдЪрдп
рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рд░реВрдмреА / рдЯреАрдХреЗ рдмрдВрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдерд╛ред рдЖрдЬ рдореИрдВ "рддреЗрдЬ рдЗрдВрдЯрд░рдлреЗрд╕" рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдЬрд╛рд░реА рд░рдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдЖрдкрдХреЛ
wxPython рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдФрд░ рд╣рдо
Python рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
wxPython рд╕рд┐рд░реНрдл
wxWidgets рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
XWidgets рдХреНрдпрд╛ рд╣реИ
wxWidgets (рдкрд╣рд▓реЗ рдЬрд┐рд╕реЗ
wxWindows рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ (GUI) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрддрд░ рдкрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓ рдХреА рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
рдЗрд╕реЗ рди рдХреЗрд╡рд▓ GUI рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХ рдЗрдореЗрдЬ, HTML, XML рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕, рдЖрд░реНрдХрд╛рдЗрд╡реНрд╕, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, рдкреНрд░реЛрд╕реЗрд╕, рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо, рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛, рдиреЗрдЯрд╡рд░реНрдХ, рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕реЗрд╕, рдбреАрдмрдЧрд┐рдВрдЧ, рдбрдВрдкреНрд╕ рднреЗрдЬрдиреЗ рдФрд░ рдХрдИ рдЕрдиреНрдп рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕реЗрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдЦреИрд░, рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЪрд▓реЛ рдХреНрд░рдо рдореЗрдВ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо
wxPython рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП
рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб рд▓рд┐рдЦреЗрдВрдЧреЗред рдпрд╣рд╛рдБ рд╡рд╣ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рд╣реИ
, рдкреНрд░рднреБрд╕рддреНрддрд╛ :
import wx app = wx.App() wnd = wx.Frame(None, wx.ID_ANY, "I'm the title") wnd.Show(True) app.MainLoop()
рдЖрдк
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ред

рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ
рдареАрдХ рд╣реИ, рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред
рджрд▓рд┐рдпрд╛, рд╕рд░! import wx
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдпрд╣рд╛рдБ рд╣рдо
wxPython рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
app = wx.App()
рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
wnd = wx.Frame(None, wx.ID_ANY, "I'm the title")
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдереЛрдбрд╝рд╛ рд░реБрдХрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ (рд╢рдмреНрджрд╛рд╡рд▓реА
wxWidgets рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ)ред
рдЖрдЗрдП рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред
- рдЬрдирдХ рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╡рд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдореБрдЦреНрдп рдЦрд┐рдбрд╝рдХреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
- рдЖрдИрдбреА рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рд╣рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдмрд╕ wx.ID_ANY рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред
- рд╢реАрд░реНрд╖рдХ - рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ ...
рдпрд╣ рд╣рдорд╛рд░реА рдЦрд┐рдбрд╝рдХреА рдХрд╛ рд╢реАрд░реНрд╖рдХ рд╣реИ ред
wnd.Show(True)
рдпрд╣рд╛рдВ рд╣рдо рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рдЦрд┐рдбрд╝рдХреА рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред
app.MainLoop()
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрдкрдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдмрд╕ рдЗрддрдирд╛ рд╣реА ...
рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВ
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдЖрдк рдХреЛ
рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ GUI рддрддреНрд╡
wxPython рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рд╕рдордЧреНрд░ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдм рдареАрдХ рд╣реИред рдЕрдкрдиреЗ рд╕рд╛рде рдПрдХ рд▓рдШреБ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рд▓рд┐рдЦреЗрдВред
рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ,
wxPython рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЛ
TextCtrl рдХреНрд▓рд╛рд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╣рдо рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рд╡рд╣ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рд╣реИ, рдЕрд░реНрдерд╛рдд рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд╛рда рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ рдФрд░
TextCtrl рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП
TE_MULTILINE рдХреЗ рд╕рд╛рде
рд╢реИрд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
import wx class Window(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title = title, size = (300,250)) self.control = wx.TextCtrl(self, style = wx.TE_MULTILINE) self.Show(True) app = wx.App() wnd = Window(None, "pyNote") app.MainLoop()
рдЖрдк
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд▓реЛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдиреЛрдЯ : рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдпрд╛ред рдореИрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдУрдУрдкреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЬреИрд╕реЗ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐
рд╕реНрд╡ рдпрд╛
рд╡рд░реНрдЧ рд╡рд┐рдВрдбреЛ (wx.Frame) рдХреНрдпрд╛ рд╣реИред
рд╡реЗрдЯрд░, рдореЗрдиреВ, рдХреГрдкрдпрд╛
рд╣рдорд╛рд░реЗ рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЖрдк рдереЛрдбрд╝реЗ рд╕реВрдЦреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рд╣реИ рдирд╛? рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рдореЗрдиреВ рднреА рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдореЗрдиреВ рдмрдирд╛рдПрдВред рдпрд╣ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред
import wx class Window(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title = title, size = (300,250)) self.control = wx.TextCtrl(self, style = wx.TE_MULTILINE)
рдЖрдк
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ рдореЗрдиреВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рд╕рдВрдкрд╛рджрдХ рд╣реИ:

рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ
рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рд╣рдо "рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЦреИрд░, рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдордВрдЪ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ - рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреИрд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
def __init__(self, parent, title): self.Bind(wx.EVT_MENU, self.OnAbout, aboutItem)
рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо "рдЕрдмрд╛рдЙрдЯ" рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо
рдСрдирдЕрдмрд╛рдЙрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
def OnAbout(self, e): dlg = wx.MessageDialog(self, "This is a mini editor keeping your text","About pyNote", wx.OK)
рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм, рдЬрдм рд╣рдо "рдЕрдмрд╛рдЙрдЯ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ:

рдореИрдВрдиреЗ рдкреВрд░рд╛ рдХреЛрдб рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реА рдХрд╣реВрдВрдЧрд╛ ...
рдЖрдк
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХрд╛рд▓рд╛рдк? рдХреЛрдИ рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ!
рдЖрдЗрдП рдпрд╣ рди рднреВрд▓реЗрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ / рдмрдВрдж рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЪрд┐рдк рдФрд░ рдбреЗрд▓ FileDialog рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдореЗрдиреВ рдореЗрдВ "рдУрдкрди" рдЖрдЗрдЯрдо рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдлрд╛рдЗрд▓ рдУрдкрди рдбрд╛рдпрд▓реЙрдЧ (
рдСрдирдСрди рдлрдВрдХреНрд╢рди) рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм рд╣рдореЗрдВ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде
FileDialog рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рд╕рдм рдХреБрдЫ:
import wx import os class Window(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title = title, size = (300,250)) self.control = wx.TextCtrl(self, style = wx.TE_MULTILINE) self.Show(True) menu = wx.Menu() openItem = menu.Append(wx.ID_ANY, "Open", "Push the button to open the file") aboutItem = menu.Append(wx.ID_ABOUT,"About","Push the button to get an information about this application") exitItem = menu.Append(wx.ID_EXIT,"Exit","Push the button to leave this application") bar = wx.MenuBar() bar.Append(menu,"File") self.SetMenuBar(bar) self.Bind(wx.EVT_MENU, self.OnOpen, openItem) self.Bind(wx.EVT_MENU, self.OnAbout, aboutItem) self.Bind(wx.EVT_MENU, self.OnExit, exitItem) def OnAbout(self, e): aboutDlg = wx.MessageDialog(self, "This is a mini editor keeping your text","About pyNote", wx.OK) aboutDlg.ShowModal() def OnOpen(self, e): self.dirname = " " openDlg = wx.FileDialog(self, "Choose a file to open", self.dirname, " ", "*.*", wx.OPEN)
рдЖрдк
рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╣ рд╕рдм рд╣реИред рдЪрд▓реЛ рд╣рдорд╛рд░реА рд░рдЪрдирд╛ рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдФрд░, рдзреНрдпрд╛рди ... рдбреНрд░рдо рд░реЛрд▓ ... "рдУрдкрди" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ ...

рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ ...

рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЖрдЬ рд╣рдо
wxPython рдирд╛рдордХ рдПрдХ рдорд╣рд╛рди рдЯреВрд▓рдХрд┐рдЯ рд╕реЗ рдорд┐рд▓реЗ, рдЬреЛ рдЖрдкрдХреЛ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╢рд╛рдирджрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ?
wxWidgets - рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ ред
рдЖрд░рдВрдн рдХрд░рдирд╛ - wxPyWikiрдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ wxPython ред
Zetcode рдкрд░ wxPython ред
рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдП!