我不确定我应该如何调整大小,我一直在尝试使用sizer,但似乎我一直在做错误的事情。
基本上我有这样的代码:
self.button = wx.Button(self, label="Create New", pos=(25,250))我想和它一起用尺码。因此,它将始终将其位置调整到窗口。初始起始位置是25,250。初始窗口的高度为400。我想让按钮根据窗口的变化进行相应的调整。
谢谢,如果您有任何问题或需要澄清,请发表意见。
发布于 2011-11-07 02:57:24
这里有一个wxglade自动生成的代码,展示了如何使用wx.BoxSizer。它只是一个带有面板小部件的框架。你可以用你的按钮改变面板,它将完美地工作。这个想法是,您可以添加其他小部件,就像在中为wx.Panel所做的那样:
sizer_2.Add(self.panel_1, 1, wx.EXPAND, 0)这会使您的小部件排成一行。如果您想要另一种配置,您可以使用不同的sizer,也可以将带有小部件的sizer添加到其他sizer中。sizer.Add()中的参数决定了sizer的边界和行为。您应该查看wxPython/wxglade文档。无论如何,estructure总是像下面这样:
import wx
# begin wxGlade: extracode
# end wxGlade
class MyFrame1(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame1.__init__
kwds["style"] = wx.CLOSE_BOX|wx.SYSTEM_MENU| wx.CAPTION
wx.Frame.__init__(self, *args, **kwds)
self.panel_1 = wx.Panel(self, -1)
------ create other widgets here ------
self.__set_properties()
self.__do_layout()
# end wxGlade
def __set_properties(self):
# begin wxGlade: MyFrame1.__set_properties
self.SetTitle("frame_2")
self.SetMinSize((300,200))
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame1.__do_layout
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_2.Add(self.panel_1, 1, wx.EXPAND, 0)
------ add other widgets or even sizers to the sizer here ------
self.SetSizer(sizer_2)
sizer_2.Fit(self)
self.Layout()
# end wxGlade
# end of class MyFrame1
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_1 = MyFrame1(None, -1, "")
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()https://stackoverflow.com/questions/8029113
复制相似问题