免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5396 | 回复: 0
打印 上一主题 下一主题

First Steps《The wxPython tutorial》 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-30 23:43 |只看该作者 |倒序浏览

                                                                                                                                                                                                                                                                                                                                                Simple example
               
               
                #!/usr/bin/env python
# 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()



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/109054/showart_2165213.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP