我对此非常陌生,所以如果这显而易见,我道歉。我正在使用示例代码(它正常运行):
class MainWindow(wx.Frame):
def __init__(self, parent, title):
self.dirname=''
# A "-1" in the size parameter instructs wxWidgets to use the default size.
# In this case, we select 200px width and the default height.
wx.Frame.__init__(self, parent, title=title, size=(1000,1000))
self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.CreateStatusBar() # A Statusbar in the bottom of the window
# Setting up the menu.
filemenu= wx.Menu()
menuOpen = filemenu.Append(wx.ID_OPEN, "&Open"," Open a file to edit")
menuAbout= filemenu.Append(wx.ID_ABOUT, "&About"," Information about this program")
menuExit = filemenu.Append(wx.ID_EXIT,"E&xit"," Terminate the program")
# Creating the menubar.
menuBar = wx.MenuBar()
menuBar.Append(filemenu,"&File") # Adding the "filemenu" to the MenuBar
self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content.
# Events.
self.Bind(wx.EVT_MENU, self.OnOpen, menuOpen)
self.Bind(wx.EVT_MENU, self.OnExit, menuExit)
self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout)
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.buttons = []
for i in range(0, 6):
self.buttons.append(wx.Button(self, -1, "Button &"+str(i)))
self.sizer2.Add(self.buttons[i], 1, wx.EXPAND)
# Use some sizers to see layout options
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.control, 1, wx.EXPAND)
self.sizer.Add(self.sizer2, 0, wx.EXPAND)
#Layout sizers
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.sizer.Fit(self)
self.Show()
我认为这就像更改wx.Frame中的“size =”值一样简单。 init 但是当我改变时没有任何反应。如何改变窗口大小?
此外,我如何告诉窗口屏幕上的哪个位置要打开? 谢谢
答案 0 :(得分:1)
我认为大小调整器正在改变窗口的大小 - 毕竟它们是什么。在
之后注释掉所有代码self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
并查看是否可以通过init方法更改窗口大小。
答案 1 :(得分:1)
问题实际上是你正在调用 self.sizer.Fit 。 Fit method告诉wxPython使小部件适合尽可能小的空间,同时仍然显示所有小部件。我很少使用这种方法,因为它并不总能达到我的预期。您只需注释掉该行,然后将大小设置为您想要的任何内容。
要设置框架的位置,您需要调用SetPosition并将其传递给屏幕坐标元组。确保在显示框架之前调用SetPosition,因为如果框架出现在一个位置然后传送到新框架,它将看起来很奇怪。