发新话题
打印

First Steps《The wxPython tutorial》新手多看看!

First Steps《The wxPython tutorial》新手多看看!

Simple example            
                #!/usr/bin/envpython# simple.py
import wx
app
= wx.App()
frame
= wx.Frame(None, -1, 'simply.py')
frame.Show()
app
.MainLoop()
               
                           
                import wx
这里首先导入wxPython模块,所有的对象和函数都是以wx为开头的。
                     
               
                app = wx.App()
每个wxPython程序必须有一个App对象。
frame = wx.Frame(None, -1, 'simple.py')
frame.Show()
这里创建了一个wx.Frame的部件,wx.Frame是一个很重要的容器部件。其中第一个参数指明父部件为None,表明它本身就是顶级部件。当创建一个wx.Frame对象时,必须要调用Show()方法来将它呈现出来。
app.MainLoop()
最后一行是一个无限的循环,用来获取和调度所有的事件。
[color="#000102"]wx.Framewx.Frame是wxPython中最重要的部件之一。wx.Frame是一个容器的部件,也就意味着它可以嵌入其他的部件,除了wx.Frame和wx.Dialogd的其他窗口部件。wx.Frame由标题栏,边框,和中间的容器区域组成。标题栏和边框是可选的,      
                wx.Frame(wx.Window parent, int id=-1, string title='', wx.Point pos = wx.DefaultPosition, wx.Size size = wx.DefaultSize, style = wx.DEFAULT_FRAME_STYLE, string name = "frame")
上面的构造函数包括7个参数,其中第1个参数没有默认值,其他的6个参数都有默认值。wx.Point为呈现窗体的坐标位置,wx.Size为窗体的大小。wx.DEFAULT_FRAME_STYLE是wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN的值,标记着窗体的样式。
#!/usr/bin/python视频# nominimizebox
.py
import wx
app
= wx.App()
window = wx.Frame(None, style=wx.MAXIMIZE_BOX | wx.RESIZE_BORDER
         | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
window.Show(True)
app
.MainLoop()
上面创建了一个没有最小化按钮的Frame窗口。
Size and Position有两种方法可以设置wx.Frame的大小,一种是在构造函数的size参数设置或调用SetSize()方法来设置。
                              
                #!/usr/bin/python
# size
.py
import wx
class Size(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(250, 200))
        self
.Show(True)
app
= wx.App()
Size(None, -1, 'Size')
app.MainLoop()
MethodDescriptionMove(wx.Point point)move a window to the given positionMoveXY(int x, int y)move a window to the given positionSetPosition(wx.Point point)set the position of a windowSetDimensions(wx.Point point, wx.Size size)set the position and the size of a window            
               
#!/usr/bin/python
# move
.py
import wx
class Move(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)
        self
.Move((800, 250))
        self.Show(True)
app
= wx.App()
Move(None, -1, 'Move')
app.MainLoop()
               
               
                wx.Frame可以调用Maximize()和Centre()函数来调整      
                #!/usr/bin/python
# centre.py
import wx
class Centre(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)
        self.Centre()
        self.Show(True)
app = wx.App()
Centre(None, -1, 'Centre')
app.MainLoop()
                     
                Widgets communicate#!/usr/bin/python
# communicate.py
import wx
class LeftPanel(wx.Panel):
    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, id, style=wx.BORDER_SUNKEN)
        self.text = parent.GetParent().rightPanel.text
        button1 = wx.Button(self, -1, '+', (10, 10))
        button2 = wx.Button(self, -1, '-', (10, 60))
        self.Bind(wx.EVT_BUTTON, self.OnPlus, id=button1.GetId())
        self.Bind(wx.EVT_BUTTON, self.OnMinus, id=button2.GetId())
    def OnPlus(self, event):
        value = int(self.text.GetLabel())
        value = value + 1
        self.text.SetLabel(str(value))
    def OnMinus(self, event):
        value = int(self.text.GetLabel())
        value = value - 1
        self.text.SetLabel(str(value))
class RightPanel(wx.Panel):
    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, id, style=wx.BORDER_SUNKEN)
        self.text = wx.StaticText(self, -1, '0', (40, 60))
class Communicate(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(280, 200))
        panel = wx.Panel(self, -1)
        self.rightPanel = RightPanel(panel, -1)
        leftPanel = LeftPanel(panel, -1)
        hbox = wx.BoxSizer()
        hbox.Add(leftPanel, 1, wx.EXPAND | wx.ALL, 5)
        hbox.Add(self.rightPanel, 1, wx.EXPAND | wx.ALL, 5)
        panel.SetSizer(hbox)
        self.Centre()
        self.Show(True)
app = wx.App()
Communicate(None, -1, 'widgets communicate')
app.MainLoop()

本文源自:ht tp://w w w.c svt.ne t/

TOP

发新话题