【发布时间】:2016-02-04 12:38:06
【问题描述】:
我对 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。
【问题讨论】:
-
我不确定,你有什么问题。当我在 ubuntu 15.10 和 python-wxgtk2.8 和 python 2.7.8 上运行代码时,代码工作得很好
-
这很奇怪,因为如果我运行这段代码,它会显示为 1x1 块,而不是 100x100。我猜它是 OS X 相关的......
-
这可能是一个原因。也许您可以尝试在白色面板中使用 SizeHints 函数而不是 setMinSize
-
它与 OS X 无关。我在 Win 7 上遇到了同样的问题。
-
尝试将第 7 行从
self.SetSize((100, 100))更改为self.SetMinSize((100, 100))。
标签: python wxpython size panel wxwidgets