使用 wxPython 的面板中的面板大小不正确
size of panel in panel using wxPython incorrect
我对 wxPython 有疑问。我有一个框架,在那个框架中,我有一个面板。在该面板中,我想要另一个固定大小 (100x100) 的面板。我的代码如下:
import wx
class TestPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.SetBackgroundColour(wx.RED)
self.SetSize((100, 100))
class ExampleFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = wx.Panel(self)
self.panel.SetMinSize((-1, -1))
self.panel.SetBackgroundColour(wx.WHITE)
self.filesize = TestPanel(self.panel, -1)
hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(self.filesize, 0, wx.CENTER)
vSizer = wx.BoxSizer(wx.VERTICAL)
vSizer.Add(hSizer, 1, wx.EXPAND)
self.panel.SetSizer(vSizer)
app = wx.App(False)
frame = ExampleFrame(None)
frame.Show()
app.MainLoop()
当我 运行 程序时,我的 TestPanel
小部件只有 1x1 像素。但是,当我使用 GetSize
方法打印尺寸时,它说尺寸为 100x100。为什么在这种情况下它显示为 1x1 红色块?
我在 OS X 上使用 wxPython 3.0.2.0。
我不确定为什么 SetSize()
不起作用,但您可以将大小传递给构造函数。这对我有用 Windows 7 with wxPython 3.0.2 where calling SetSize
didn't.
import wx
class TestPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, size=(100, 100), *args)
self.SetBackgroundColour('red')
self.Layout()
class ExampleFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = wx.Panel(self)
self.panel.SetMinSize((-1, -1))
self.panel.SetBackgroundColour(wx.WHITE)
self.filesize = TestPanel(self.panel, -1)
hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(self.filesize, 0, wx.CENTER)
vSizer = wx.BoxSizer(wx.VERTICAL)
vSizer.Add(hSizer, 1, wx.EXPAND)
self.panel.SetSizer(vSizer)
import wx.lib.inspection
app = wx.App(False)
frame = ExampleFrame(None)
frame.Show()
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
我对 wxPython 有疑问。我有一个框架,在那个框架中,我有一个面板。在该面板中,我想要另一个固定大小 (100x100) 的面板。我的代码如下:
import wx
class TestPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.SetBackgroundColour(wx.RED)
self.SetSize((100, 100))
class ExampleFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = wx.Panel(self)
self.panel.SetMinSize((-1, -1))
self.panel.SetBackgroundColour(wx.WHITE)
self.filesize = TestPanel(self.panel, -1)
hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(self.filesize, 0, wx.CENTER)
vSizer = wx.BoxSizer(wx.VERTICAL)
vSizer.Add(hSizer, 1, wx.EXPAND)
self.panel.SetSizer(vSizer)
app = wx.App(False)
frame = ExampleFrame(None)
frame.Show()
app.MainLoop()
当我 运行 程序时,我的 TestPanel
小部件只有 1x1 像素。但是,当我使用 GetSize
方法打印尺寸时,它说尺寸为 100x100。为什么在这种情况下它显示为 1x1 红色块?
我在 OS X 上使用 wxPython 3.0.2.0。
我不确定为什么 SetSize()
不起作用,但您可以将大小传递给构造函数。这对我有用 Windows 7 with wxPython 3.0.2 where calling SetSize
didn't.
import wx
class TestPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, size=(100, 100), *args)
self.SetBackgroundColour('red')
self.Layout()
class ExampleFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = wx.Panel(self)
self.panel.SetMinSize((-1, -1))
self.panel.SetBackgroundColour(wx.WHITE)
self.filesize = TestPanel(self.panel, -1)
hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(self.filesize, 0, wx.CENTER)
vSizer = wx.BoxSizer(wx.VERTICAL)
vSizer.Add(hSizer, 1, wx.EXPAND)
self.panel.SetSizer(vSizer)
import wx.lib.inspection
app = wx.App(False)
frame = ExampleFrame(None)
frame.Show()
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()