我正在使用wxPython使用wxWizard控件创建向导。我正在尝试绘制一个彩色矩形,但是当我运行应用程序时,矩形的每一边似乎都有一个大约10px的填充。这适用于所有其他控件。我必须稍微抵消它们,以便它们出现在我想要的地方。有什么方法可以删除这个填充?这是我的基本向导页面的来源。
class SimplePage(wx.wizard.PyWizardPage):
"""
Simple wizard page with unlimited rows of text.
"""
def __init__(self, parent, title):
wx.wizard.PyWizardPage.__init__(self, parent)
self.next = self.prev = None
#self.sizer = wx.BoxSizer(wx.VERTICAL)
title = wx.StaticText(self, -1, title)
title.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.BOLD))
#self.sizer.AddWindow(title, 0, wx.ALIGN_LEFT|wx.ALL, padding)
#self.sizer.AddWindow(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.ALL, padding)
# self.SetSizer(self.sizer)
self.Bind(wx.EVT_PAINT, self.OnPaint)
def OnPaint(self, evt):
"""set up the device context (DC) for painting"""
self.dc = wx.PaintDC(self)
self.dc.BeginDrawing()
self.dc.SetPen(wx.Pen("grey",style=wx.TRANSPARENT))
self.dc.SetBrush(wx.Brush("grey", wx.SOLID))
# set x, y, w, h for rectangle
self.dc.DrawRectangle(0,0,500, 500)
self.dc.EndDrawing()
del self.dc
def SetNext(self, next):
self.next = next
def SetPrev(self, prev):
self.prev = prev
def GetNext(self):
return self.next
def GetPrev(self):
return self.prev
def Activated(self, evt):
"""
Executed when page is being activated.
"""
return
def Blocked(self, evt):
"""
Executed when page is about to be switched. Switching can be
blocked by returning True.
"""
return False
def Cancel(self, evt):
"""
Executed when wizard is about to be canceled. Canceling can be
blocked by returning False.
"""
return True
谢谢你们。
答案 0 :(得分:1)
我无法验证这一点(我会发布评论,但我没有足够的声誉)。
在我的系统上使用
上面的代码if __name__ == "__main__":
app = wx.App(0)
frame_1 = wx.wizard.Wizard(None)
s = SimplePage(frame_1,"")
app.SetTopWindow(frame_1)
s.Show()
frame_1.Show()
app.MainLoop()
在DC上没有边框(有一个边框是顶级窗口装饰的一部分。
我在Windows(wx 2.8.10.1 python 2.4.4)和linux(wx 2.8.6.1 gtk)
上验证了这一点