2017-02-22 1 views
0

Ich habe eine wx.frame class mit wxpython erstellt. Ich möchte die frame's Größe innerhalb der Klasse ändern, ist das möglich? ich weiß, stellen Sie die frame's Größe, wenn init, wieÄndern wx.Frame Größe innerhalb der Klasse

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

Ich möchte eine Funktion innerhalb der Klasse erstellen, die den Rahmen der Größe auf maximal ändern können. Weiß jemand?

Antwort

0

SetSize Methode kann verwendet werden, um die Größe eines Fensters zu ändern.

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

Um ein Fenster zu maximieren, müssen Sie Maximize Methode.

self.Maximize() 
+0

vielen dank! – song

0

Verwenden Sie einfach SetSize()
z.B.

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() 
Verwandte Themen