更改类内的wx.Frame大小

时间:2017-02-22 09:26:03

标签: wxpython

我已使用wx.frame class创建了wxpython。 我想改变课堂内的frame's大小,有可能吗? 我知道在frame's时设置init尺寸,例如

class MyFrame(wx.Frame):
    def __init__(self):
        super(MyFrame,self).__init__(None, -1, title="demo", size=(width, height))
    def change_frame_size(self)

我想在类中创建一个函数,它可以将框架的大小更改为最大值。有人知道吗?

2 个答案:

答案 0 :(得分:0)

SetSize方法可用于更改窗口的大小。

def change_frame_size(self, width, height):
    self.SetSize(wx.Size(width, height))

为了最大化窗口,您有Maximize方法。

self.Maximize()

答案 1 :(得分:0)

只需使用SetSize()
例如

import wx

class MyApp(wx.App):
    def OnInit(self):
        self.frame = MyFrame()
        self.SetTopWindow(self.frame)
        return True

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self,None, title="Window", pos = (100,150), size =(250,200))
        menu = wx.Menu()
        menu.Append(1,'&Resize Max')
        menu.AppendSeparator()
        menu.Append(2,'Resize &Min')
        menu.AppendSeparator()
        menu.Append(3,'E&xit')
        menuBar = wx.MenuBar()
        menuBar.Append(menu,'&File')
        self.Bind(wx.EVT_MENU, self.OnMax, id=1)
        self.Bind(wx.EVT_MENU, self.OnMin, id=2)
        self.Bind(wx.EVT_MENU, self.OnExit, id=3)
        self.SetMenuBar(menuBar)
        self.SetMaxSize((500,400))
        self.SetMinSize((250,200))
        self.Layout()
        self.Show()

    def OnExit(self, evt):
        self.Destroy()

    def OnMax(self, evt):
        self.SetSize(self.MaxSize)
        print("MyFrame resized bigger!")

    def OnMin(self, evt):
        self.SetSize(self.MinSize)
        print("MyFrame resized smaller!")

if __name__ == "__main__":
    app = MyApp()
    app.MainLoop()