您的位置:首页 > 编程语言 > Python开发

wxpython给框架添加窗口部件(一)

2016-11-17 10:32 295 查看


# -*- coding: utf-8 -*-
import wx

class Frame_01(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,'here we go',pos=wx.DefaultPosition,size=(300,100))
panel = wx.Panel(self)
button = wx.Button(panel,label="Close",pos=(125,10),size=(50,50))
self.Bind(wx.EVT_BUTTON,self.onCloseMe,button)
self.Bind(wx.EVT_CLOSE,self.onCloseWindow)

def onCloseMe(self,event):
self.Close(True)

def onCloseWindow(self,event):
self.Destroy()

if __name__ == "__main__":
app = wx.App()
frame = Frame_01()
frame.Show()
app.MainLoop()


      为什么wx.Button被创建时使用了明确的位置和尺寸,而wx.Panel没有。在wxPython中,如果只有一个子窗口的框架被创建,那么那个子窗口(例2.3中是wx.Panel)被自动重新调整尺寸去填满该框架的客户区域。这个自动调整尺寸将覆盖关于这个子窗口的任何位置和尺寸信息,尽管关于子窗口的信息已被指定,这些信息将被忽略。这个自动调整尺寸仅适用于框架内或对话框内的只有唯一元素的情况。这里按钮是panel的元素,而不是框架的,所以要使用指定的尺寸和位置。如果没有为这个按钮指定尺寸和位置,它将使用默认的位置(panel的左上角)和基于按钮标签的长度的尺寸。显式地指定所有子窗口的位置和尺寸是十分乏味的。更重要的是,当用户调整窗口大小的时候,这使得子窗口的位置和大小不能作相应调整。为了解决这两个问题,wxPython使用了称为sizers的对象来管理子窗口的复杂布局。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wxpython